我的FTP服务器上有一些文件。现在我想让用户下载文件。 我怎样才能做到这一点?
我在互联网上搜索了很多但是找不到一些帮助。
注意:我正在使用MVC5和angularjs
我试过这个:
var filePath = "FTP_FILE_PATH";
Response.AddHeader("content-disposition", "inline; filename=" + "new");
return File(filePath, "audio/mp3");
答案 0 :(得分:1)
请注意,File
方法的filename
参数需要存储在Web服务器本地文件系统中的文件的路径。你不能在这里传递FTP地址。
相反,从FTP加载文件并从收到的FtpStream中提供它。
try {
/* Create an FTP Request */
var ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
/* Log in to the FTP Server with the User Name and Password Provided */
ftpRequest.Credentials = new NetworkCredential(user, pass);
/* When in doubt, use these options */
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = true;
/* Specify the Type of FTP Request */
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
/* Establish Return Communication with the FTP Server */
var ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
/* Get the FTP Server's Response Stream */
var ftpStream = ftpResponse.GetResponseStream();
// TODO: you might need to extract these settings from the FTP response
const string contentType = "application/zip";
const string fileNameDisplayedToUser = "FileName.zip"
return File(ftpStream, contentType, fileNameDisplayedToUser);
}
catch (Exception ex) {
_logger.Error(ex);
}