曾做過電廠的項目,有一些功能需要和甲方的廠家對接,其中就有需要實現甲方ftp服務器上的PDF、JPG等文件的查看功能。就PDF文件為例,這里使用的是pdf插件,需要將參數通過鏈接發給ftp,獲取到PDF文件,並在后端處理成文件流,以便文件的讀取。
關於PDF.js插件的學習介紹:http://mozilla.github.io/pdf.js/
URL格式:
http://localhost:2692/PDFVIEWER/web/viewer.html?file=http://localhost:2692/TOV/DASystem/GetStreaem?path%3Dftp://ftp賬號:ftp密碼@IP地址/0001/E_File3/2017526/test.PDF
注意:PDFVIEWER/web/viewer.html是一個PDF插件地址鏈接
這里的參數path后面不能直接跟“=”,因為在這里會不識別,所以我們在這里使用“=”的轉移符"%3D"來代替等號。
后台方法:將ftp服務器上的PDF文件轉成二進制流進行讀取
using System.Net; public FileStreamResult GetStreaem(string path) { var reqFtp = (FtpWebRequest)WebRequest.Create(new Uri(path)); reqFtp.Method = WebRequestMethods.Ftp.DownloadFile; reqFtp.UseBinary = true; //reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); reqFtp.UsePassive = false; //選擇主動還是被動模式 , 這句要加上的。 reqFtp.KeepAlive = false;//一定要設置此屬性,否則一次性下載多個文件的時候,會出現異常。 var response = (FtpWebResponse)reqFtp.GetResponse(); var ftpStream = response.GetResponseStream(); return File(ftpStream, "application/pdf", "ib70guide.pdf");//ib70guide.pdf是臨時文件,以便文件在線查看 }
最后返回是文件格式, "application/pdf"這個表示PDF格式的文件。
如果對你有幫助,給個推薦吧。