我想在文件输入发生变化后通过AJAX上传图片,但我不知道自己哪里出错了。发送文本比文件更容易。
<input type="file" name="photovideo" id="photovideo">
$(document).on("change","#photovideo",function(){
$.ajax({
type:'post',
url:'alert_users/main/potovideo.php',
data:new FormData(this),
contentType:false,
processData:false,
cache:false,
success: function(message){
alert(message);
},
error:function(){
alert("error");
}
});
//...
});
我只想返回名称以确保处理请求:
echo $name = $_FILES['photovideo']['name'];
答案 0 :(得分:0)
我们用它来提交文件
<form id="yourImages" action="action.php" method="post" enctype="multipart/form-data"></form>
<script>
$("body").on('change', '#file', function() {
$( "#yourImages" ).ajaxForm({}).submit();
});
</script>
但是你需要AjaxForm ......
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js"></script>
答案 1 :(得分:0)
问题似乎是您尝试使用输入创建FormData
,而您应该使用表单。所以改变这一行:
data:new FormData(this),
对此:
data:new FormData($(this).closest('form')[0]), // Get the parent form