我在尝试从表单上传文件时遇到问题 . 带有文件输入的表单是使用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与输入不在同一个文件中吗?
谢谢 .
1 回答
你不能简单地使用AJAX
POST
文件 . 您可以使用FileReader API读取文件并构建自己的multipart/form-data
请求 .这是非常复杂的,有很多教程如何做到这一点 . 祝好运 .