프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / ConvertService / ServiceBase / DownloadPlugin / DirectDownload / Downloader.cs @ 43e1d368

이력 | 보기 | 이력해설 | 다운로드 (1.78 KB)

1
using Markus.Service.Helper;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7
using System.Web;
8

    
9
namespace DirectDownload
10
{
11
    public class DirectDownload : Markus.Service.Convert.Plugin.IDownloadPlugin
12
    {
13
        public string Exception { get; set; }
14
        public string Name => nameof(DirectDownload);
15

    
16
        /// <summary>
17
        /// PdfFileFullPath의 경로를 받아 SaveDirectory하위에 PdfFileFullPath파일명으로 저장
18
        /// </summary>
19
        /// <param name="PdfFilePath">PDF의 full path</param>
20
        /// <param name="SavePath">pdf를 다운받고자 하는 directory</param>
21
        public bool Do(string PdfFileFullPath, string SaveDirectory, ref string DownloadFilePath)
22
        {
23
            bool result = false;
24
            try
25
            {
26
                var originFilePath = HttpUtility.UrlDecode(PdfFileFullPath); //PDF 전체 경로
27

    
28
                string FileName = DownloadUri.GetFileName(originFilePath);
29
                string downloadFilePath = System.IO.Path.Combine(SaveDirectory, FileName);
30

    
31
                using (System.Net.WebClient webClient = new System.Net.WebClient())
32
                {
33
                    webClient.UseDefaultCredentials = true;
34
                    webClient.Headers.Add("Authorization: BASIC SGVsbG8="); //가상의 인증
35
                    webClient.Proxy = null;
36

    
37
                    webClient.DownloadFile(originFilePath, downloadFilePath);
38

    
39
                    webClient.Dispose();
40
                    result = true;
41
                    DownloadFilePath = downloadFilePath;
42
                }
43
            }
44
            catch (Exception ex)
45
            {
46
                this.Exception =  ex.ToString();
47
            }
48

    
49
            return result;
50
        }
51
    }
52
}
클립보드 이미지 추가 (최대 크기: 500 MB)