【发布时间】:2015-12-31 14:32:08
【问题描述】:
这是我将用户输入文件上传到 ftp 服务器的代码:
public static bool UploadFile(string FilePath, HttpPostedFileBase file)
{
Stream ftpStream = null;
FtpWebRequest request = null;
FtpWebResponse response = null;
try
{
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpURL + FilePath);
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpRequest.Credentials = new NetworkCredential(UserName, Password);
ftpRequest.ContentLength = file.ContentLength;
Stream requestStream = ftpRequest.GetRequestStream();
Byte[] buffer = new Byte[buferSize];
int bytesRead = file.InputStream.Read(buffer, 0, buferSize);
while (bytesRead > 0)
{
requestStream.Write(buffer, 0, bytesRead);
bytesRead = file.InputStream.Read(buffer, 0, buferSize);
}
requestStream.Close();
return true;
}
catch (Exception)
{
return false;
}
}
它似乎工作正常。但有一个问题。 当用户尝试上传文件时(一个大文件!) 它需要很长时间(我认为将文件保存在主机服务器内存或磁盘中!) 再拿一个! ftp上传时间长。 现在的问题是我可以通过我的主机将用户输入文件直接上传到 ftp 服务器。我的意思是使用 HttpPostedFile 我有一个来自文件的流以将其保存在 Ftp 服务器中并减少上传文件的时间。
(抱歉语言和信息不佳!我是 MVC 的新手。)
【问题讨论】:
标签: c# asp.net-mvc