プロジェクトで作業しているときに、通常の ASP.NET FileUpload コントロールを使用してファイルをアップロードすると、ページが更新され、ページ上の JS で記述された要素が消えてしまいます。ファイルをアップロードすると、ページを更新できません。ajaxfileupload プラグインを使用することをお勧めします (プラグインのダウンロード アドレス: http://files.jb51.net/file_images/article/201306/js/ajaxfileupload.js)
ajaxfileupload は jQuery のプラグインです。このプラグインを使用する場合は、jQuery.js ファイルも参照する必要があります
。コードにアクセスするだけです
JS コード
[javascript]
$.ajaxFileUpload({
url: '/Web/Teacher/ImportAchievements.ashx',
secureuri: false,
fileElementId: 'fulAchievements',
dataType: 'json',
success: function (data, status) {
alert(data[0]);
}
});
2. パラメータの説明
url: AJAX バックグラウンド コード ファイル。フロント デスクからファイル データを受信する必要があります。
secureuri: アップロードされたファイルを暗号化するかどうか
fileElementId: HTML の アップロード コントロールの ID 値。ここで、バックグラウンド コードは名前と値の形式でデータを受け取ることに注意してください。 ID ではなくデータを受信します (基本的な理由は、このメソッドが自動的にフォームを生成し、そのフォームをバックグラウンド コードに送信して処理するためです)。
dataType: データ型、通常は「json」
成功: アップロード成功後にコールバック関数が実行されました
ASP.NET 一般ハンドラーのコード
[csharp]
context.Response.ContentType = "text/html";//これは非常に重要です。フロントエンドのデータ型は json ですが、ここには html を記述する必要があります。
// フロントからファイルを取得します
HttpFileCollection files = HttpContext.Current.Request.Files;
// Web サイトのディレクトリにファイルを保存します
files[0].SaveAs(context.Server.MapPath ("/Web/uploadFiles/Achievements.xls"));
//json データ形式で表現されたプロンプトを返します
string result = "[" """ "Achievements imported fully" """ "]";
context.Response.Write(result);
}