通过javascript将文件从html表单发送到php


Sending file from html form to php through javascript

我用javascript创建了一个表单。我不想在上面有一个提交按钮,因为它只是一个输入字段。为了不使用它,我只使用了onchange函数。所以我的表格如下。。。

<form method="post" name="uploadImage">
<input type="file" id="uploadImg" name="uploadImg" onchange="fileClick()" />
</form>

然后为了使表单提交,我使用了js-submit函数。所以我的Javascript如下。

function fileClick(){
document.forms["uploadImage"].submit();
$.post(
"uploadImage.php",
{image : $("#uploadImg").val()},
function(data, status){
alert(data);
$("#uploadedImgs").innerHTML = "<img src='" + data + "' alt='uploadedImg' />";
});
}
</script>

(是的,我正确地包含了JQuery)但是,当我尝试使用它将数据提交到php文件时,我不断收到它说$_FILES[‘image’]为null。我的php代码如下。

<?php
if($_FILES['image']){
echo "Image set";
} else {
echo "No image selected";
}
?>

非常感谢您的帮助。此外,如果你有一个更简单的方法来做我正在尝试做的事情,所有的建议都会被接受。感谢大家的帮助D

(帖子后的最后一句话)是的,我知道也有类似的问题,但大多数问题都比我使用Javascript要高级得多。这很简单,但对我来说,想办法让它发挥作用是非常困难和耗时的。所以请不要标记为重复,因为我无法理解其他人的答案。对不起:(

我使用ajax来处理类似的事情。此代码在文件选择器值更改时触发。它会发布图像值,并提醒响应。

$("#uploadImage").change(function(event) {
    var values = $(this).serialize();
    $.ajax({
        url: "uploadImage.php",
        type: "post",
        data: values,
        success: function(response){
            alert(response);
        },
        error:function(){
            //Error
        }
    });
});