Javascript将输入文件传递给PHP

Javascript将输入文件传递给PHP,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不想使用Javascript上传文件,我只想通过Ajax将文件传递到PHP文件,在PHP中进行我想要的验证,并使用move\u uploaded\u file函数。可能吗 $('#the_button').on("click", function(){ var image = $('#image').val() == "" ? null : $('#image').files; $.ajax({ type: "POST", u

我不想使用Javascript上传文件,我只想通过Ajax将文件传递到PHP文件,在PHP中进行我想要的验证,并使用
move\u uploaded\u file
函数。可能吗

$('#the_button').on("click", function(){
    var image  = $('#image').val() == "" ? null : $('#image').files;

    $.ajax({        
        type: "POST",
        url: "insert.php?type=image",
        data: image,
        enctype: 'multipart/form-data',
        success: function(data) {
            alert(data);
        }
    }); 
}
这将为#图像返回“未定义”

$('#image')。文件[0]
也返回未定义的


$('#image')[0]。文件
返回[object FileList]->是否正确?

无法通过AJAX上载文件。 通常的方法是将表单的目标设置为隐藏的iframe。 像这样的

<form target="myHiddenIframe" method="post" enctype="multipart/form-data">
    //your form elements here. 
</form>
<iframe name="myHiddenIframe" id="myHiddenIframe" style="display: none;" />

//你的表单元素在这里。
提交表格以实现您的目标

试试这个插件

$('#fileupload')。fileupload({
数据类型:“json”,
完成:功能(e,数据){
$.each(data.result.files,函数(索引,文件){
$('

').text(file.name).appendTo(document.body); }); } });


我认为您不能在AJAX中使用enctype:“multipart/form data”。要将文件上载到服务器(PHP),您必须使用javascript(使用fileupload输入字段)打开文件,并将其作为字节[]数组发送到服务器。然后服务器就可以读取byte[]数组,并使用它做任何你需要的事情,如果我没有任何形式的话?我已经看过这个插件了。但是我想这是我想要的。看起来我只打算用PHP编写一个表单和一个提交按钮。事实上,我会接受你的答案。我目前正在努力使这项工作,似乎很好。非常感谢。
$('#fileupload').fileupload({
    dataType: 'json',
    done: function (e, data) {
        $.each(data.result.files, function (index, file) {
            $('<p/>').text(file.name).appendTo(document.body);
        });
    }
});