我有一个上传文件到服务器的问题。上传时ASP.NET文件被破坏
在我的网页我有三个不同的文件上传Web控件从我挑选的文件。要保存服务器上的文件,我正在使用FileUpload.PostedFile.SaveAs()
方法。
如果我上传约200 KB或更小的文件一切正常,但是当我上传更大的东西,像10MB,它们的长度变化,当我下载它,它不再使用。
例如,当我上传一个40KB的HTML文件,200KB pdf文件和一个10MB的MP3文件的MP3文件被截断,并成为200KB长。经过一些调试后,我不确定发生了什么,因为在使用SaveAs()
方法之前,文件大小已经改变。
我已经更改web.config
文件中的maxRequestLength
和maxAllowedContentLength
值。 这是我上传文件的代码:
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大。这可以帮助你上传大文件:https://blogs.msdn.microsoft.com/shashankyerramilli/2014/02/14/upload-files-to-blob-storage-using-azure-power-shell/ – kristech
谢谢非常感谢您的回复。我不知道Azure,我希望能找到一种方法来存储和检索数据,而无需使用复杂的解决方案。这是一个学校项目,我没有太多时间去探讨新的话题。 –
尝试查看保存和下载文件的保管箱API。我以前使用过这个,并且不需要太多时间来弄清楚。 – kristech