AsyncFileUploadコントロールを備えたファイルアップロードページがあります。ユーザーがファイルを参照すると、アップロードコントロールがファイルをメモリにプルします。次に、ファイルをデータベースに保存するために次のコードを起動する[アップロード]ボタンがあります。
ファイルが約500KBを超える場合、コントロールのFileBytesプロパティは単にnullを返すことがわかりました。これは私のサーバーで発生しますが、アプリをローカルで実行すると正常に実行されます。
ファイルをデータベースにコミットする前にユーザーが詳細情報を入力する必要があるため、OnUploadCompletedイベントを処理していません。
これはweb.configにあります:httpRuntime maxRequestLength = "10000" />
private void UploadDocument(int mietID)
{
if (Page.IsValid)
{
if (mietID > 0)
{
if (File1.HasFile && File1.FileBytes != null)
{
string[] docFormats = MIETPConfig.Current.SupportedDocumentFormats;
for (short i = 0; i < docFormats.Length; i++)
docFormats[i] = docFormats[i].ToUpper();
if (docFormats.Contains(Path.GetExtension(File1.FileName).ToUpper()))
{
try
{
byte[] uploadedBytes = File1.FileBytes;
DocumentController.CreateDocument(txtLinkText.Text, Path.GetFileName(File1.PostedFile.FileName), uploadedBytes, mietID, (User)Session["User"]);
MietpClientScripts.CloseWindow(Page);
}
catch (Exception)
{
lblUploadStatus.Text = "There was an error saving the document to the database.";
}
}
else
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (string s in docFormats)
sb.Append(s + ", ");
sb.Remove(sb.Length - 2, 2);
lblUploadStatus.Text = "Invalid file format, only these formats are supported: " + sb.ToString();
}
}
else
{
lblUploadStatus.Text = "There was an error saving the document, the document could not be read; it might be too large to upload.";
}
}
else
lblUploadStatus.Text = "No Mietp ID to associate document with.";
}
}