2017-06-29 51 views
0

ファイルをサーバーにアップロードするときに問題があります。アップロード時にASP.NETファイルが破損する

私のWebページには、ファイルを選択する3つの異なるファイルアップロードWebコントロールがあります。サーバーにファイルを保存するには、FileUpload.PostedFile.SaveAs()メソッドを使用しています。

約200KB以下のファイルをアップロードするとすべてがうまくいくが、10MBのように大きなものをアップロードすると長さが変わり、ダウンロードするともう使用できなくなる。

たとえば、40KBのhtmlファイル、200KBのpdfファイル、10MBのmp3ファイルをアップロードすると、mp3ファイルは切り捨てられ、200KBになります。いくつかのデバッグの後に、SaveAs()メソッドを使用する前にファイルサイズが既に変更されているため、どこに発生するのかわかりません。

ファイルの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に最大サイズ制限がありますか? ありがとうございます。

+0

アップロードdoesntのように見える200メガバイトを超えることができます。これにより、大きなファイルをアップロードするのに役立ちます。https://blogs.msdn.microsoft.com/shashankyerramilli/2014/02/14/upload-files-to-blob-storage-using-azure-power-shell/ – kristech

+0

ありがとうあなたの返事のために非常に。私はAzureを知らないのですが、複雑なソリューションを使わずにデータを保存して検索する方法が見つけられたらと思います。それは学校のプロジェクトであり、私は新しいトピックにぶつかる時間があまりありません。 –

+0

ドロップボックスAPIを調べてファイルを保存してダウンロードしてみてください。私は以前これを使用しており、それを理解するのに時間はかかりません。 – kristech

答えて

0

私は間違いを見つけました。私はオーディオファイルをアップロードする間違ったファイルアップローダーを指定しました。だから私のコードは、それはオーディオファイルの名前と拡張子を与えて、mp3ファイルとして格納すると、PDFファイルを選ぶことでした。私はファイルのアップローダの名前を変更し、今は動作します。あなたのアドバイスをありがとう!

関連する問題