如何在ASP.MVC中将大型文件上传到FTP服务器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (178)

我正在开发一个ASP MVC网站。现在我需要将文件(.zip文件)上传到我的FTP服务器。要上传,请使用此代码。

此代码仅上载大小<10 Mb的文件。

例如:当我使用此代码上传150 MB大小的文件时,它会损坏,并且我的Ftp服务器上的文件大小更改为300 MB。

 byte[] fileBytes = null;

                //Read the FileName and convert it to Byte array.
                string filename = Path.GetFileName(FileUpload1.FileName);

                using (StreamReader fileStream = new StreamReader(FileUpload1.InputStream))
                {
                    fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd());
                    fileStream.Close();
                }

                try
                {
                    //Create FTP Request.
                    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftp + ftpFolder + "/" + fileName);
                    request.Method = WebRequestMethods.Ftp.UploadFile;

                    //Enter FTP Server credentials.
                    request.Credentials = new NetworkCredential(ftpUName, ftpPWord);
                    request.ContentLength = fileBytes.Length;
                    request.UsePassive = true;
                    request.UseBinary = true;
                    request.ServicePoint.ConnectionLimit = fileBytes.Length;
                    request.EnableSsl = false;

                    using (Stream requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(fileBytes, 0, fileBytes.Length);
                        requestStream.Close();
                    }

                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();

                    response.Close();
                }
                catch (WebException ex)
                {
                    throw new Exception((ex.Response as FtpWebResponse).StatusDescription);
                }
提问于
用户回答回答于

将其添加到web.config中:

<httpRuntime maxRequestLength="whatever value you need in kb max value is 2,147,483,647 kb" relaxedUrlToFileSystemMapping="true" />

在system.web部分下默认大小限制为4mb。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励