PHP ajax上传图片

时间:2016-05-03 02:09:11

标签: 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_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;
}

我做错了什么?我试图解决这个问题,我疯了。

编辑:form_data的内容 enter image description here

1 个答案:

答案 0 :(得分:0)

您正在错误地使用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
                }
     });
});