PHP ajax上传图像
我正在尝试通过ajax和php进行文件上传。当直接调用PHP时,它工作得很好,但是每次我通过ajax调用它时,它都失败了。我没有收到任何错误(恼人的)它只是不想上传 我的JQUERY看起来像PHP ajax上传图像,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试通过ajax和php进行文件上传。当直接调用PHP时,它工作得很好,但是每次我通过ajax调用它时,它都失败了。我没有收到任何错误(恼人的)它只是不想上传 我的JQUERY看起来像 $('.fileUpload').on('click', function(){ var file_data = $('#medical').prop('files')[0]; console.log(file_data); var form_d
$('.fileUpload').on('click', function(){
var file_data = $('#medical').prop('files')[0];
console.log(file_data);
var form_data = new FormData();
form_data.file = file_data;
console.log(form_data);
var fileType = $(this).parent().find('input[type="hidden"]').val()
console.log(fileType);
$.ajax({
url: '/docs/upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
fileType:fileType,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(data){
$('.message').html(data) // display response from the PHP script, if any
}
});
});
我的PHP看起来像
$file_upload="true";
$file_up_size=$_FILES['file_up'][size];
print_r($_FILES[file_up]);
if ($_FILES[file_up][size]>250000){$msg=$msg."Your uploaded file size is more than 250KB
so please reduce the file size and then upload.<BR>";
$file_upload="false";}
$file_name=$_FILES[file_up][name];
$add="medicalPaperwork/$file_name"; // the path with the file name where the file will be stored
if($file_upload=="true"){
if(move_uploaded_file ($_FILES[file_up][tmp_name], $add)){
echo "Thank god!";
}else{echo "Fuck you.";}
}else{
echo $msg;
}
$file\u upload=“true”;
$file\u up\u size=$\u FILES['file\u up'][size];
打印($文件[文件上传]);
如果($_FILES[file_up][size]>250000){$msg=$msg.”您上传的文件大小超过250KB
因此,请减小文件大小,然后上载。
”;
$file_upload=“false”;}
$file\u name=$\u FILES[file\u up][name];
$add=“MedicalPerwork/$file\u name”;//将存储文件的文件名路径
如果($file_upload==“true”){
如果(移动上传的文件($文件[文件上传][tmp文件名],$添加)){
回声:“感谢上帝!”;
}否则{echo“操你的。”;}
}否则{
echo$msg;
}
我做错了什么?我想弄明白这件事快发疯了
编辑:表单数据的内容
如果不正确地使用FormData,请使用
append
设置要上载的字段
$('.fileUpload').on('click', function(){
var file_data = $('#medical').prop('files')[0];
console.log(file_data);
var form_data = new FormData();
var fileType = $(this).parent().find('input[type="hidden"]').val()
form_data.append('file_up', file_data);
form_data.append('fileType', fileType);
console.log(form_data);
console.log(fileType);
$.ajax({
url: '/docs/upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(data){
$('.message').html(data) // display response from the PHP script, if any
}
});
});
如果不正确地使用FormData,请使用
append
设置要上载的字段
$('.fileUpload').on('click', function(){
var file_data = $('#medical').prop('files')[0];
console.log(file_data);
var form_data = new FormData();
var fileType = $(this).parent().find('input[type="hidden"]').val()
form_data.append('file_up', file_data);
form_data.append('fileType', fileType);
console.log(form_data);
console.log(fileType);
$.ajax({
url: '/docs/upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(data){
$('.message').html(data) // display response from the PHP script, if any
}
});
});
你得到了什么输出?没有,我只是得到move_上传的文件if语句中的else。没有错误或反馈您可以将
print\r($\u FILES[file\u up])
更改为print\r($\u FILES['file\u up')
,因为我看不到任何地方定义了file\u up
。或者更好,只需打印($\u文件)我不认为对于文件上传数据类型:“text”是right@AliHamze当调用directy时,php工作正常。如果在文件的周围加上引号,它就找不到它了。你得到了什么输出?没有,我只是在move\u uploaded\u file If语句中找到了else。没有错误或反馈您可以将print\r($\u FILES[file\u up])
更改为print\r($\u FILES['file\u up')
,因为我看不到任何地方定义了file\u up
。或者更好,只需打印($\u文件)我不认为对于文件上传数据类型:“text”是right@AliHamze当调用directy时,php工作正常。如果在文件的周围加上引号,它就找不到了。我已经试过了。当它被改变的时候,它甚至连其他的都没有。我已经试过了。当它被改变的时候,它甚至不能到达其他地方。