jQuery Form Pluginの助けを借りて、通常のフォーム フィールドとともにファイルをアップロードしています。すべてが正常に機能していました。ただし、utf-8 の特殊文字がある場合は、サーバー側でジャンク文字に変換されます。リクエスト ヘッダーを調べたところ、コンテンツ タイプ charset=utf-8 が欠落していることがわかりました。送信中にコンテンツ タイプを追加しようとしましたが、何も役に立ちませんでした。
var options = {
success: successfunc,
contentType: 'multipart/form-data; charset=utf-8',
};
$("#formid").ajaxSubmit(options);
jQuery スクリプト ファイルを分析した結果、
var s = $.extend(true, {}, $.ajaxSettings, options, {
contentType: false,
processData: false,
cache: false,
type: 'POST'
});
jQuery のコンテンツ タイプが変更された場合、境界値の問題により、サーバー コードは要求パラメーターを取得できません。ファイルをアップロードして、1 回の ajax 送信で utf-8 特殊文字を送信することはできませんか?