ファイルをサーバーにアップロードするときに問題があります。アップロード時にASP.NETファイルが破損する
私のWebページには、ファイルを選択する3つの異なるファイルアップロードWebコントロールがあります。サーバーにファイルを保存するには、FileUpload.PostedFile.SaveAs()
メソッドを使用しています。
約200KB以下のファイルをアップロードするとすべてがうまくいくが、10MBのように大きなものをアップロードすると長さが変わり、ダウンロードするともう使用できなくなる。
たとえば、40KBのhtmlファイル、200KBのpdfファイル、10MBのmp3ファイルをアップロードすると、mp3ファイルは切り捨てられ、200KBになります。いくつかのデバッグの後に、SaveAs()
メソッドを使用する前にファイルサイズが既に変更されているため、どこに発生するのかわかりません。
ファイルの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に最大サイズ制限がありますか? ありがとうございます。
アップロードdoesntのように見える200メガバイトを超えることができます。これにより、大きなファイルをアップロードするのに役立ちます。https://blogs.msdn.microsoft.com/shashankyerramilli/2014/02/14/upload-files-to-blob-storage-using-azure-power-shell/ – kristech
ありがとうあなたの返事のために非常に。私はAzureを知らないのですが、複雑なソリューションを使わずにデータを保存して検索する方法が見つけられたらと思います。それは学校のプロジェクトであり、私は新しいトピックにぶつかる時間があまりありません。 –
ドロップボックスAPIを調べてファイルを保存してダウンロードしてみてください。私は以前これを使用しており、それを理解するのに時間はかかりません。 – kristech