上传图片而不提交表单

时间:2017-04-22 07:33:30

标签: php jquery

<input type='file' name='inputfile' id='inputfile'>

我正在尝试上传没有表单提交的图片 - 只需在输入file后更改:

$('#inputfile').change(function(){
    $.ajax({
        url: "pro-img-disk.php",
        type: "POST",
        data:  new FormData('#inpufile'),
        contentType: false,
        cache: false,
        processData:false,
        success: function(data){
            console.log(data);
        }
    });
});

PHP

$src = $_FILES['inputfile']['tmp_name'];
$targ = "../images/".$_FILES['inputfile']['name'];
move_uploaded_file($src, $targ);

错误:
Undefined index: inputfile...

任何帮助?

2 个答案:

答案 0 :(得分:5)

请参阅以下更改:

<input type='file' name='inputfile' id='inputfile'>

以下是您应该如何发送ajax请求:

$(document).ready(function() {
    $('#inputfile').change(function(){
        var file_data = $('#inputfile').prop('files')[0];   
        var form_data = new FormData();                  
        form_data.append('file', file_data);
        $.ajax({
            url: "pro-img-disk.php",
            type: "POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData:false,
            success: function(data){
                console.log(data);
            }
        });
    });
});

最后,以下是您应该如何处理表单数据:

$src = $_FILES['file']['tmp_name'];
$targ = "../images/".$_FILES['file']['name'];
move_uploaded_file($src, $targ);

答案 1 :(得分:1)

试试这个:

var file_data = $('#inputfile').prop('files')[0];
var form_data = new FormData();                     // Create a form
form_data.append('inputfile', file_data);           // append file to form

$.ajax({
        url: "pro-img-disk.php",
        type        : 'post',
        cache       : false,
        contentType : false,
        processData : false,
        data        : form_data,                         
        success     : function(response){
            alert(response);
        }
 });
在php中,您可以获得如下文件数据:

$_FILES['inputfile']