如何使用jQueryAjax方法上传文件而不使用submit按钮

如何使用jQueryAjax方法上传文件而不使用submit按钮,jquery,ajax,Jquery,Ajax,我对你们上次给我的无价建议感到非常高兴。我真的非常感谢你们。但这次我尝试使用ajax上传一个文件。当用户在浏览窗口中选择文件时,它会立即上载图像。请也帮我做这个。谢谢大家 这是我的代码: function upd(str) { $.ajax({ type:'post', url:'upld.php', datatype:'php', data:'fname='+str, success:function(responce)

我对你们上次给我的无价建议感到非常高兴。我真的非常感谢你们。但这次我尝试使用ajax上传一个文件。当用户在浏览窗口中选择文件时,它会立即上载图像。请也帮我做这个。谢谢大家

这是我的代码:

function upd(str)
{
$.ajax({
       type:'post',
       url:'upld.php',
       datatype:'php',
       data:'fname='+str,
       success:function(responce)
       {
            alert("Uploaded");   
       }
       });
}

</script>
</head>

<body>
<form action="upd.php" method="post" enctype="multipart/form-data">

    <input type="file" name="namefile" id="namefile" onSelect="upd(this.value)">

</form> 
函数upd(str)
{
$.ajax({
类型:'post',
url:'upld.php',
数据类型:'php',
数据:'fname='+str,
成功:功能(响应)
{
警报(“上传”);
}
});
}
我的upld.php包含以下代码:

<?php


$target="uploads/";
$target=$target.basename($_FILES['file']["name"]);
move_uploaded_file($_FILES['file']["tmp_name"],$target);
echo basename($_FILES["file"]["name"])."File Uploaded";


?>

您可以使用:$(“表单:第一”).submit()

可以通过jquery针对文件对象附加On Change事件

否则,它可能不会像您希望的那样直截了当。但是,我使用了Uploadify Jquery插件来帮助完成以下工作:

  • 上载多个文档
  • 通过拖放上传

这个问题已经被问了一百万次了。在这里,看看
FormData
API。通过ajax上传文件是不可能的,但是你可以使用
base64
编码并向你的后端发送一个漂亮的长字符串:)无论如何,你可以使用uploadify(使用flash)这样的系统来完成。谢谢,我会看一下你的链接。没有办法修改上面的代码并上传文件吗,onchange应该为你做这项工作。您可以提交表单本身,此处不需要ajax调用: