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 の応答は常に false です。を使用してエラーを確認しようとしました$_FILES['uploadedfile']['error']が、これは NULL になります。var_dump($_FILES)空の配列を返します。uploadCouponPhoto: C:\fakepath\small-logo2.jpegajax-saveCoupon ヘッダーのフォーム データでも確認できます。move_uploaded_file が入力と同じファイルにないためでしょうか?

ありがとう。

4

1 に答える 1

2

POSTAJAX を使用して単純にファイルを作成することはできません。FileReader API を使用して、ファイルを読み取り、独自のmultipart/form-data要求を作成できます。

これは非常に複雑で、その方法に関する多くのチュートリアルがあります。幸運を。

于 2013-03-27T16:23:34.820 に答える