ファイルアップロードスクリプトに問題があります。HTMLは次のとおりです。
<form method="post" name="imgsubmit" id="contact_form" action="PHP/imgupload.php" enctype="multipart/form-data">
<label id="namelabel" for="username">Your name:</label><input id="username" type="text" name="username" rel="req">
<label id="labelemail" for="imgemail">E-mail:</label><input id="imgemail" type="email" name="imgemail" rel="req">
<label id="filelabel" for="file">Your photo:</label><input id="file" type="file" name="file">
<input id="imgsubmit" type="submit" name="submit" value="SUBMIT"></form>
ユーザー名と電子メールのフィールドが有効かどうかを確認し、入力されていない場合はそれらの周りに白い境界線を返すjquery検証スクリプトがあります。
$(function () {
$('#contact_form').submit(function (e) {
e.preventDefault();
var form = $('#contact_form');
var post_url = form.attr('action');
var post_data = form.serialize();
var submit_form = false;
var req_fields = $('input[rel=req]');
var field, pcount = 0;
req_fields.each(function () {
field = $(this).val();
if (field == '' || field == 'Required') {
$(this).css('border', '1px solid white').val('');
pcount += 1;
} else {}
});
if (pcount == 0) {
submit_form = true;
}
if (submit_form) {
$.ajax({
type: 'POST',
url: post_url,
data: post_data,
success: function (msg) {
$(form).fadeOut;
form.html(msg).fadeIn();
}
});
}
});
});
問題は、ユーザー名がphpスクリプトに送信され、電子メールがphpスクリプトに送信されても、画像がアップロードされないことです。AJAXが画像のアップロードをサポートするようになり、form.serialize()が問題の根本的な原因である可能性が高いことを認識していますが、画像の送信をサポートするためにこのコードを正しく編集できていません。
PHPに送信する画像を含めるようにこのコードを調整するにはどうすればよいですか?