曾做过电厂的项目,有一些功能需要和甲方的厂家对接,其中就有需要实现甲方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格式的文件。
如果对你有帮助,给个推荐吧。