2017-01-10 34 views
0

私のアプリケーションで剣道ファイルアップロードコントロールを使用しています。例えば20MBのファイルを選択します。リクエストは、このドキュメントをazureにアップロードし、blobを指すDBエントリを挿入する必要があるサーバに送られます。クライアントからキャンセルされたときにサーバー上のファイルアップロードをキャンセルする

サーバにすべてのバイトが転送され、残りの操作が(ファイルのアップロードやDBへのエントリの挿入のような)いつか行われると同時に、ユーザがクライアントからのアップロードをキャンセルすると、クライアント側でキャンセルされますが、サーバーは引き続きアップロードを進めます。 これはどのように処理する必要がありますか?何かご意見は?

ありがとうございます!

+0

これは、私はあなたがブラウザを閉じているときに、新しい要求を行うことができるようになります考えていないと、それは確かに動作しないような接続があるときに任意のクライアント側スクリプトを使用して解決しなければならないものではありませんネットワークの問題や中止のために中断されました。はい、取り消しイベントがあると、キャンセルされたファイルを削除するためにサーバーサイドメソッドを呼び出す必要があります。 –

+0

はい、しかし、必要なすべてのビットがサーバー側に転送された後、サーバー上のアップロードコードに時間がかかるとします(サイズの大きいファイルの場合)。同じ時間に、ユーザーはブラウザを閉じ、キャンセルイベントを処理し、アップロードされたドキュメント(Azureの点でBLOB)にキャンセルしようとします。これは、ファイルが完全にアップロードされていないため失敗します。 私は考えることができるいくつかの迅速な修正があるかもしれませんが、私はこれが他のほとんどのWebアプリケーションの共通のシナリオであると信じています。標準的なアプローチは何ですか? –

+0

アップロードするストレージに依存する標準的な方法はありません。この記事を参照してください。https://www.simple-talk.com/cloud/platform-as-a-service/azure-blob-storage-part-4 - アップロード - 大きなブロブ/ –

答えて

0

これは、私はあなたが ブラウザが閉じているときに、新しい要求を行うことができるようになります考えていないと、接続があるとき、それは確かに働かないよう任意のクライアントサイド スクリプトを使用して解決しなければならないものではありませんネットワークの問題やキャンセルのために が中断されました。はい、 キャンセルイベントがある場合は、キャンセルの際にサーバーサイドメソッドを呼び出すと、 にアップロードされたファイルが削除されます。

この投稿を見ると、stackoverflowのLukasの回答と剣道アップロードのキャンセルイベントを利用しています。

How to stop file transfer if browser is closed/upload cancelled

+0

上記の私のコメントを見てください –

関連する問題