このチュートリアルの手順に従って、単純な jquery ファイルのアップロードを作成しようとしています: http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/で、完全に機能し、優れています。ただし、ユーザーが画像をアップロードできるものをより細かく制御し、セキュリティを強化したいと考えています。たとえば、トークンも送信できるようにしたいと考えています。これが私の元のコードです:
$('#images').change(function (evt) {
$('#response').text("Uploading . . .");
var amount = this.files.length;
var reader, file;
alert(formdata);
for (var i = 0; i < amount; i++ ) {
file = this.files[i];
if (!!file.type.match(/image.*/)) {
if ( window.FileReader ) {
reader = new FileReader();
reader.onloadend = function (e) {
appendUploadedPic(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("images[]", file);
}
}
}
if (formdata) {
$.ajax({
url: "php/upload.php",
type: "POST",
data: formdata,
dataType:'json',
processData: false,
contentType: false,
success: function (res) {
$('#response').html(res['image_name']);
}
});
}
});
PHPはこれまでのところ単純です
foreach ($_FILES["images"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["images"]["name"][$key];
move_uploaded_file( $_FILES["images"]["tmp_name"][$key], "../members/" . $_FILES['images']['name'][$key]);
}
}
$respond = array("filename" => $_FILES["images"]["name"][0], "type" => "image");
echo json_encode($respond);
今私がやりたいことはこれです
$.ajax({
url: "php/upload.php",
type: "POST",
data: 'token=someToken&code=upload&data='+formdata,
dataType:'json',
processData: false,
contentType: false,
success: function (res) {
$('#response').html(res);
}
});
出来ますか?もしそうなら、どのようにphpからそれを読むのですか? 通常は $_POST['code'] と $_POST'token'] を使用するポスト メソッドですが、データ オブジェクトから画像を読み取るにはどうすればよいでしょうか。