0

我在尝试从表单上传文件时遇到问题。带有文件输入的表单是使用 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 的响应总是错误的。我试图查看使用的错误,$_FILES['uploadedfile']['error']但这给出了NULL。var_dump($_FILES)给出一个空数组。我还可以uploadCouponPhoto: C:\fakepath\small-logo2.jpeg在 ajax-saveCoupon 标头的表单数据中看到。我想知道我没有正确执行此操作,是因为 move_uploaded_file 与输入不在同一个文件中吗?

谢谢。

4

1 回答 1

2

您不能简单地POST使用 AJAX 文件。您可以使用 FileReader API 来读取文件并构建您自己的multipart/form-data请求。

这是相当复杂的,并且有很多关于如何做到这一点的教程。祝你好运。

于 2013-03-27T16:23:34.820 回答