2013-03-27 60 views
0

我試圖從窗體上傳文件時遇到問題。帶有文件輸入的表單是使用ajax創建的。move_uploaded_file with ajax

Ajax的getForm.php

<input id="uploadCouponPhoto" name="uploadCouponPhoto" type="file"> 

然後我用一個按鈕

<input id="popup_couponBox_commandButton" type="button" onclick="javascript: coupons_apply();" value="Appliquer"> 

JavaScript來執行,節省形式的另一種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)給出一個空數組。我還可以在ajax-saveCoupon標頭的表單數據中看到uploadCouponPhoto: C:\fakepath\small-logo2.jpeg。我想知道我沒有正確地做這件事,是因爲move_uploaded_file與輸入文件不在同一個文件中嗎?

謝謝。

+1

'@ $ _ POST ['uploadCouponPhoto'];'不好。使用'isset'或'array_keys_exists'來檢查密鑰是否存在。 – Halcyon 2013-03-27 16:20:36

+0

你如何通過ajax傳輸文件? – Ian 2013-03-27 16:21:36

+0

'coupons_apply'做什麼? – 2013-03-27 16:37:49

回答

2

你不能簡單地使用AJAX的POST文件。您可以使用FileReader API讀取文件並構建您自己的multipart/form-data請求。

這是相當複雜的,並有很多關於如何做到這一點的教程。祝你好運。