0

私のWebサイトには、ユーザーがいくつかのアイテム(通常はツリー)を挿入できるアップロードフォームがあり、このアイテムを追加した後に画像をアップロードするオプションがあります。画像をアップロードするには15秒ほどかかりますが、画像のアップロードを待っている間に別のアイテムを追加するオプションをユーザーに提供したいと思います。スレッドを使用したいのは、アップロードが完了するとページが更新され、フォームがリセットされるため、別のアイテムを追加する場合は、アップロードが完了するまで待つ必要があるためです。

私はこのコードを試しました:

  protected void UploadFile(Object s, EventArgs e)
        {
    Thread t = new Thread(delegate()
    {
      //code for upload the image
    )};
    t.Start();
}

しかし、それは機能せず、ファイルをアップロードしていません。誰かが理由を知っていますか?ありがとう。

4

3 に答える 3

2

サーバー側のコードは、完全なリクエストが受信された後にのみ呼び出されます。
したがって、そこでスレッドを使用してもあまり役に立ちません。

アップロード中もページをインタラクティブに保ちたい場合は、ajax ベースのソリューションを探す必要があります。

非常に単純なオプションはuploadifyです。これを HttpHandler に接続すると、アプリケーションがインタラクティブな状態を維持しながら、バックグラウンドでアップロードを行うことができます。

于 2013-03-11T09:30:09.553 に答える
1

The chunk of time necessary to upload a file is not in the handling of it -- you are probably just saving the file somewhere -- it's the transmission of the file over the network.

So I would advise not to try to do background processing here, just handle it in the normal way, it will be just as performant. The user will just have to wait until the image is sent over the network.

If a user needs to add another item while his image is uploading, you can always let your site open another page in a tab/window on the browser.

于 2013-03-11T09:27:54.097 に答える
0

ファイルがアップロードされたというフィードバックをユーザーに提供するという観点から、HTML5で何ができるかを見てみましょう。Royが指摘したように、送信時間は重要であり、ユーザーはとにかく待たなければなりません。しかし、HTML5を使用すると、アップロードページのユーザーエクスペリエンスを向上させるための優れたプログレスバーを提供できる可能性があります。

お役に立てれば。

于 2013-03-11T09:34:02.483 に答える