2010-11-25 18 views
1

.netのAsyncFileUploadコントロールに関して、コントロールはファイルを選択するとファイルアップロードを実行します。私の関心事は、アップロードボタンを非同期的に送信ボタンで処理できるようにファイルを選択すると、アップロードを無効にすることができるかどうかです。AsyncFileUploadコントロール

答えて

0

AsyncFileUploadによって公開される唯一のイベントは、UploadCompleteイベントで、UploadErrorです。手動でアップロードを開始する機能を公開しているイベントは特にありません。おそらく、JavaScriptのやり方では可能性がありますが、以前はそのような回避策を見ていませんでした。

0

単純な答えはいいえ私はこれらと同様の非同期アップロードの問題を抱えています。あなたがボタンを使ってアップロードを制御し、選択したファイルを追加したり削除したりする必要がある場合(おそらくこれが後で必要になるでしょう)、javascript操作を使用する必要があるなら、私のアドバイスは彼から遠ざかることです。

SWFUploadを検索すると、.NETと簡単に統合できるフラッシュコンポーネントです。複数のjavascriptオプションとイベントを提供します。 :

Official site

Demonstration

+0

私はSWFUploadを終了しました。アップロードされたファイルはupload.aspxが保存されている場所に保存されることがわかりました。だから私の質問は、データベースにファイルを格納する方法です? –

+0

FileBytesプロパティを使用してDBに保存できます。 SWFを設定し、投稿するURLを選択するときは、filebytes(バイト配列)を使用してデータベースに保存します – jaderanderson

1

私はこれが古いですけど、誰が興味があるかもしれないためので、私は、しばらくの間、この上で私の頭を打つ:D

は、以下のリンクをチェックしてください。

私の最初の考えは、コントロールの下のファイル入力を無効にすることでした。

私はコントロールを無効にできましたが、残念ながら動作を停止しました。サーバーがAsyncFileUpload_UploadCompleteを起動すると、入力がディアブルされ、読み取るファイルがなかった。

<script> 
function disableFileUpload(on) { 
    if (on) { 
     $('#ajax-file-input input:file').attr('disabled', true); 
    } else { 
     $(#ajax-file-input 'input:file').attr('disabled', false); 
    } 
} 
function AsyncFileUpload_CheckExtension(sender, args) { 
    disableFileUpload(true); 
    return true; 
} 
function AsyncFileUpload_OnClientUploadComplete(sender, args) { 
    disableFileUpload(false); 
    var data = eval('(' + args.d + ')'); 
    for (var key in data) { 
     var obj = data[key]; 
     for (var prop in obj) { 
      console.log(prop + " = " + obj[prop]); 
     } 
    } 
    doThingsWith(data); 
} 
</script> 
<div id="ajax-file-input"> 
<ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" 
        OnUploadedComplete="AsyncFileUpload_UploadComplete" 
        OnClientUploadStarted="AsyncFileUpload_CheckExtension" 
        OnClientUploadComplete="AsyncFileUpload_OnClientUploadComplete" 
        runat="server" /> 
</div> 

は私がコントロールの上に半透明のPNGを配置して示すと、制御innaccesibleを作ってそれを隠してしまいました。

これが役に立ちます。

function disableFileUpload(on) { 
    if (on) { 
     $("#file-disabled").show(); 
    } else { 
     $("#file-disabled").hide(); 
    } 
} 
関連する問題