Файлы ASP.NET повреждаются при загрузке

У меня проблема с загрузкой файлов на сервер.

На моей веб-странице у меня есть три разных веб-элемента управления загрузкой файлов, из которых я выбираю файлы. Для сохранения файлов на сервере я использую метод FileUpload.PostedFile.SaveAs().

Если я загружаю файлы размером около 200 КБ или меньше, все идет нормально, но когда я загружаю что-то большее, например 10 МБ, их длина меняется, и когда я загружаю их, их больше нельзя использовать.

Например, когда я загружаю файл html размером 40 КБ, файл pdf размером 200 КБ и файл mp3 размером 10 МБ, файл mp3 усекается и становится длиннее 200 КБ. После некоторой отладки я не уверен, где это происходит, потому что до использования метода SaveAs() размер файла уже изменился.

Я уже изменил значения maxRequestLength и maxAllowedContentLength в web.config файле. Это код, в котором я загружаю файл:

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 ограничение на максимальный размер? Спасибо за помощь.


person Leonardo Bevilacqua    schedule 29.06.2017    source источник
comment
Похоже, загрузка не превышает 200 МБ. Это может помочь вам загружать файлы большего размера: blogs.msdn.microsoft.com/shashankyerramilli/2014/02/14/   -  person kristech    schedule 29.06.2017
comment
Спасибо вам большое за ваш ответ. Я не знаю Azure, мне хотелось бы найти способ просто хранить и извлекать данные без использования сложных решений. Это школьный проект, и у меня не так много времени, чтобы заниматься новыми темами.   -  person Leonardo Bevilacqua    schedule 29.06.2017
comment
попробуйте заглянуть в api dropbox, чтобы сохранять и скачивать файлы. Я использовал это раньше, и это не займет много времени, чтобы понять.   -  person kristech    schedule 29.06.2017


Ответы (1)


Прошу прощения, я нашел свою ошибку. Я указал неправильный загрузчик файла, из которого загружается аудиофайл. Итак, мой код выбрал файл pdf, присвоил ему имя и расширение аудиофайла и сохранил его как файл mp3. Я изменил имя загрузчика файлов, и теперь он работает. Спасибо за советы!

person Leonardo Bevilacqua    schedule 29.06.2017