6

ユーザーが非同期的にファイルをアップロードできるようにするために、AsyncFileUpload を使用しています。

ファイルのサイズを 1MB に制限したい。

私が見た限りでは、アップロードの完了時にのみファイルの長さを取得できます

アップロード開始時のように:

(OnClientUploadStarted)

function UploadStarted(sender,args) 
{
   //if bigger than 1MB (approximately)
   if (args.get_length() > 1000000 ) 
   {
       ShowActionNotificationError( errorMessage); 
       return false;  
    }
}

args.get_length() は null であるため、使用できません...

アップロードが完了すると、次のようになります。

(OnClientUploadComplete)

function UploadComplete(sender,args) 
{
    //if bigger than 1MB (approximately)
    if (args.get_length() > 1000000 ) 
    {
        ShowActionNotificationError( errorMessage); 
        return false;  
    }
}

正常に動作しますが、ファイルは既にアップロードされています...

では、アップロードする前にファイルのサイズを知るにはどうすればよいですか? 私は非常に単純なものを見逃していますか?

HTTP リクエストの長さと並べ替えを処理せずにやりたいです。

ありがとう!

4

6 に答える 6

5

かなりの調査を行った結果、AJAX を使用してこれを行うことはできないことに気付きました。

yahooメールやgmailなどを見回すと、Flashでできています。

hotmail では Silverlight で行われます。

Uploadifyと呼ばれる無料の(今のところ)フラッシュアップロードコントロールがあります...

現在、統合に取り組んでいます。

私が間違っている場合は、私を修正してください! :)

于 2011-06-14T05:07:10.900 に答える
0

FileUploadCompleteサーバー側のメソッドでサイズを確認できます

void FileUploadComplete(object objSender, AsyncFileUploadEventArgs e)
{
  if (e.get_length() > 1000000 )
  {  
      ShowActionNotificationError( errorMessage);
      return false;
  }
}
于 2011-06-13T08:00:10.137 に答える
0

コンテンツが実際にサーバーにアップロードされる前にファイルサイズを確認する必要がある場合は、aspコンポーネントFileUploadを使用することをお勧めします。これにより、ファイルをアップロードするかどうかを確認して決定できます。

If FileUpload1.FileContent.Length <= DesiredFileSize Then

   <<Code to Upload the file>>

End If
于 2012-02-14T05:51:11.910 に答える
0

はい、Mithir の言ったことは正しいです。HTML コントロールを使用して最新のユーザー エクスペリエンスを提供するのは非常に面倒です。別の代替手段はSWFUploadです

于 2012-01-01T13:53:20.897 に答える