尝试从表单上传文件时遇到问题。带有文件输入的表单是使用ajax创建的。
Ajax的getForm.php
<input id="uploadCouponPhoto" name="uploadCouponPhoto" type="file">
然后我在按钮上使用javascript
<input id="popup_couponBox_commandButton" type="button" onclick="javascript: coupons_apply();" value="Appliquer">
执行另一个保存表单的ajax文件。
Ajax的saveCoupon.php
$customPhoto = @$_POST['uploadCouponPhoto'];
if(!empty($customPhoto)){
$name = "coupon_".$idCoupon;
$directory = $_SERVER["DOCUMENT_ROOT"]."/resources/images/members/".$idMember;
if(move_uploaded_file($customPhoto, $directory."/".$name)){
echo "success";
}
else{
var_dump($_FILES['uploadedfile']['error']);
}
}
但是,ajax-saveCoupon.php的响应始终为false。我试图使用$_FILES['uploadedfile']['error']
查看错误,但这会给出NULL。var_dump($_FILES)
给出一个空数组。我还可以在ajax-saveCoupon标头的表单数据中看到uploadCouponPhoto: C:\fakepath\small-logo2.jpeg
。我想知道我做错了什么才能正常工作,是因为move_uploaded_file与输入不在同一个文件中?
感谢。
答案 0 :(得分:2)
您不能简单地使用AJAX POST
文件。您可以使用FileReader API读取文件并构建自己的multipart/form-data
请求。
这是非常复杂的,有许多教程如何做到这一点。祝你好运。