Пример #1
0
        public virtual void GetFile(string pathRemoteFile, ref Stream fileStrem)
        {
            //DTO.RegistrationAttatchFile attachFile = new DTO.RegistrationAttatchFile();
            //if (_attachFiles.Where(a => a.ATTACH_FILE_TYPE == type).Count() <= 0)
            //    throw new RegisterationException("ไม่พบเอกสารแนบตามประเภทที่ต้องการ !!!");

            //attachFile = _attachFiles.Where(a => a.ATTACH_FILE_TYPE == type).FirstOrDefault();
            using (FileService.FileTransferServiceClient svc = new FileService.FileTransferServiceClient())
            {
                DownloadFileResponse response = svc.DownloadFile(new DownloadFileRequest()
                {
                    TargetContainer = "", TargetFileName = pathRemoteFile
                });
                if (response.Code != "0000")
                {
                    throw new IOException(response.Message);
                }

                fileStrem = response.FileByteStream;
            }
        }
Пример #2
0
        /// <summary>
        /// Download File จาก File Server
        /// </summary>
        /// <param name="httpResponse">Current Response from Page</param>
        /// <param name="folderContrainner">Folder ที่เก็บไฟล์</param>
        /// <param name="fileName">ชื่อไฟล์</param>
        public void DownloadFile(System.Web.HttpResponse httpResponse, string folderContrainner, string fileName)
        {
            //ระบุตำแหน่งไฟล์และที่เก็บบน File Server
            //FileService.DownloadRequest requestData = new FileService.DownloadRequest();

            //FileService.RemoteFileInfo fileInfo = new FileService.RemoteFileInfo();

            //string resMsg = svc.DownloadFile(ref fileName, folderContrainner, out fileInfo.Length, out fileInfo.FileByteStream);

            DownloadFileResponse response = new DownloadFileResponse();

            response = svc.DownloadFile(new DownloadFileRequest()
            {
                TargetContainer = folderContrainner,
                TargetFileName  = fileName
            });

            Stream fileStream = response.FileByteStream;

            httpResponse.Clear();
            httpResponse.BufferOutput = true;

            // Set Response.ContentType
            httpResponse.ContentType = response.ContentType;  //GetContentType(fileExtension);

            // Append header
            httpResponse.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);

            // Write the file to the Response
            const int bufferLength = 10000;

            byte[] buffer   = new Byte[bufferLength];
            int    length   = 0;
            Stream download = null;

            try
            {
                download = response.FileByteStream; // GetFile(fileName);

                do
                {
                    if (httpResponse.IsClientConnected)
                    {
                        length = download.Read(buffer, 0, bufferLength);
                        httpResponse.OutputStream.Write(buffer, 0, length);
                        buffer = new Byte[bufferLength];
                    }
                    else
                    {
                        length = -1;
                    }
                }while (length > 0);

                httpResponse.Flush();
                httpResponse.End();
            }
            finally
            {
                if (download != null)
                {
                    download.Close();
                }
            }
        }