Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP ajax上传图像_Php_Jquery_Ajax - Fatal编程技术网

PHP ajax上传图像

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

我正在尝试通过ajax和php进行文件上传。当直接调用PHP时,它工作得很好,但是每次我通过ajax调用它时,它都失败了。我没有收到任何错误(恼人的)它只是不想上传

我的JQUERY看起来像

$('.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工作正常。如果在文件的周围加上引号,它就找不到了。我已经试过了。当它被改变的时候,它甚至连其他的都没有。我已经试过了。当它被改变的时候,它甚至不能到达其他地方。