【问题标题】:ASP.NET files get corrupted when uploadedASP.NET 文件在上传时损坏
【发布时间】:2017-12-03 08:16:28
【问题描述】:

我在将文件上传到服务器时遇到问题。

在我的网页中,我有三个不同的文件上传 Web 控件,我从中选择文件。要将文件保存在服务器上,我使用FileUpload.PostedFile.SaveAs() 方法。

如果我上传大约 200 KB 或更少的文件,一切正常,但当我上传更大的文件(如 10MB)时,它们的长度会发生变化,当我下载它时,它不再可用。

例如,当我上传一个 40KB 的 html 文件、一个 200KB 的 pdf 文件和一个 10MB 的 mp3 文件时,mp3 文件会被截断并变成 200KB 长。经过一些调试,我不确定它发生在哪里,因为在使用 SaveAs() 方法之前,文件大小已经改变了。

我已经更改了web.config 文件中的maxRequestLengthmaxAllowedContentLength 值。 这是我上传文件的代码:

string htmlFilename = "";
string pdfFilename = "";
string audioFilename = "";
string folder= "";

if (uploadHtml.PostedFile != null && uploadHtml.PostedFile.ContentLength    > 0)
   htmlFilename = Path.GetFileName(uploadHtml.PostedFile.FileName);
if (uploadPDF.PostedFile != null && uploadPDF.PostedFile.ContentLength > 0)
    pdfFilename = Path.GetFileName(uploadPDF.PostedFile.FileName);
if (uploadAudio.PostedFile != null && uploadAudio.PostedFile.ContentLength > 0)
   audioFilename = Path.GetFileName(uploadAudio.PostedFile.FileName);

if (htmlFilename != "" || pdfFilename != "" || audioFilename != "")
{
   folder= Server.MapPath("Data/" + txtTitoloStudio.Text);
   if (!Directory.Exists(cartella))
   {
       Directory.CreateDirectory(cartella);
   }
if (htmlFilename != "")
{
   string htmlSaveLocation = cartella + "/" + htmlFilename;
   uploadHtml.PostedFile.SaveAs(htmlSaveLocation);
}
if (pdfFilename != "")
{
   string pdfSaveLocation = cartella + "/" + pdfFilename;
   uploadPDF.PostedFile.SaveAs(pdfSaveLocation);
}
if (audioFilename != "")
{
   string audioSaveLocation = cartella + "/" + audioFilename;
   uploadPDF.PostedFile.SaveAs(audioSaveLocation);
}

我该如何解决这个问题? FileUpload 是否有最大大小限制? 感谢您的帮助。

【问题讨论】:

  • 看起来上传不允许大于 200mb。这可能会帮助您上传更大的文件:blogs.msdn.microsoft.com/shashankyerramilli/2014/02/14/…
  • 非常感谢您的回复。我不了解 Azure,我希望我能找到一种方法来存储和检索数据,而无需使用复杂的解决方案。这是一个学校项目,我没有太多时间来研究新话题。
  • 尝试查看 Dropbox api 以保存和下载文件。这个我以前用过,没花多少时间就搞清楚了。

标签: c# asp.net .net file-upload save-as


【解决方案1】:

对不起,我发现了我的错误。我指定了错误的文件上传器,从中上传音频文件。因此,我的代码所做的是选择 pdf 文件,为其提供音频文件的名称和扩展名,并将其存储为 mp3 文件。我更改了文件上传器的名称,现在它可以工作了。感谢您的建议!

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 2010-11-16
    • 2020-09-27
    • 2019-10-10
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多