<code> <input id="file" type="file" accept="image/png,image/gif,image/jpeg" name="file"> ---------------------------------------------------------------- var fileInput = document.getElementById("file"); var file = fileInput.files[0]; var formData = new FormData(); formData.append("file", file); $.ajax({ url: "./upload_photobank.php", type: "POST", data: formData, processData: false, // 告诉jQuery不要去处理发送的数据 contentType: false, // 告诉jQuery不要去设置Content-Type请求头 complete : function(jqXHR, textStatus) { if(jqXHR.status != 200){ console.log( 456 ) }else{ var jsonData = eval('(' + jqXHR.responseText + ')'); // var jsonData = jqXHR.responseText; console.log(jqXHR.responseText); } } });</code>
php如何寫 ,取得到上傳的圖片的二進位資料?
js部分是否有錯誤?
<code> <input id="file" type="file" accept="image/png,image/gif,image/jpeg" name="file"> ---------------------------------------------------------------- var fileInput = document.getElementById("file"); var file = fileInput.files[0]; var formData = new FormData(); formData.append("file", file); $.ajax({ url: "./upload_photobank.php", type: "POST", data: formData, processData: false, // 告诉jQuery不要去处理发送的数据 contentType: false, // 告诉jQuery不要去设置Content-Type请求头 complete : function(jqXHR, textStatus) { if(jqXHR.status != 200){ console.log( 456 ) }else{ var jsonData = eval('(' + jqXHR.responseText + ')'); // var jsonData = jqXHR.responseText; console.log(jqXHR.responseText); } } });</code>
php如何寫 ,取得到上傳的圖片的二進位資料?
js部分是否有錯誤?
先確保表單的屬性要有enctype="multipart/form-data"
,實例化FormData不能為空啊!為空就取得不到表單值啊
用$_FILES,而不是$_POST
上傳程式碼要寫到input的「change」事件裡…還有ajax的回呼有點怪,都complate了就不要再判斷status了吧。 。
可以參考下我寫的前端圖片直傳OSS試驗
FormData
就是表單,所有資料的處理和表單都是一樣的,所以PHP也是一樣的處理,上傳檔案還是透過$_FILES
來處理。