asp.net Web アプリケーションで valums fileuploader を使用しています。実際のアップロード自体では問題なく動作しています。ただし、Chrome と FF ではエラー状態のチェックが正しく機能しません。アップローダーは、同じ名前のファイルが既に存在するかどうかを確認する fileupload.ashx というハンドラーを指します。C#コードは以下のとおりです...
if (File.Exists(Path.Combine(パス, ファイル名))) { returnJson = "{success:false, error:'重複したファイル名'}"; context.Response.ContentType = "テキスト/プレーン"; context.Response.Write(returnJson); 戻る; }
上記のエラーメッセージが result.error プロパティにあると予想しました。JavaScript のデバッグを行った後、このコードは IE8 ではうまく機能しますが、Chrome と FF では機能しないことがわかりました。転送が失敗した場合、xhr responseText には null 文字列が含まれます。
valums fileuploader.js からの JavaScript スニペットを以下に示します ...
xhr.onreadystatechange = function() { if (xhr.readyState == 4) { self._onComplete(id, xhr); } };
驚くべきことに、アップロードが成功すると、Chrome と FF でも適切に responseText が返されます。どんな助けでも大歓迎です。