我是新來的網絡發展,我一直有最新的問題是AJAX文件上傳...
現在我有兩個HTML輸入字段;一個文件輸入和一個按鈕。
<input type="file" name="Frame" id="Frame_"/>
<input type="button" name="FrameButton" id="FrameButton_" value="UPLOAD"/>
按鈕被點擊然後我打電話說有下面的代碼功能後..
var frame = document.getElementById('Frame_');
var frameImg = frame.files[0];
var form_data = new FormData();
form_data.append('frame', frameImg);
jQuery.ajax({
url : './handler.php',
type : 'post',
data : form_data
contentType : false,
processData : false,
success : alert("Frame Uploaded")
});
當我的var_dump()的$ _POST和$ _FILES數組顯示兩個數組都爲空。儘管Chrome Dev中的「Request Payload」請求是
Content-Disposition:form-data; NAME = 「框架」;文件名=「GoldFrame.jpg」
內容類型:image/JPEG
在其中我的印象是,這意味着文件的,我在前端選擇成功是「的信息張貼「編輯我的handler.php文件。這是一個錯誤的解釋?
無論哪種方式,有人可以給我一個答案我的問題?或至少指向可能有我的答案的資源?似乎有許多類似的問題,但我沒有看到有一個確切的答案。
我在過去曾經使用iframe來處理這種事情,但這看起來像一個非常黑客的方法,並且我希望在將來能夠靈活地使用ajax來處理這類任務。
幫助表示讚賞。
這裏;請訪問http://php.net/manual/en/function.error-reporting.php,然後將其應用於您的代碼。還請檢查您的控制檯。 –
你設置了一個錯誤的內容類型,這意味着jquery不會發送任何類型。如果PHP沒有看到適當的類型進來,它將不會假設表單/文件提交,並且不會解析/填充$ _POST/$ _ FILES的輸入。您還將processData設置爲false,因此您傳遞的對象將被** NOT **處理爲正常提交。 –
檢查文件上傳的內容類型。那裏有一個錯誤。之後,您可以通過瀏覽器控制檯檢查Ajax調用是否正確。如果它給出了錯誤,那麼你應該檢查。 –