首頁 > 後端開發 > php教程 > php如何取得formData上傳圖片的二進位數據

php如何取得formData上傳圖片的二進位數據

WBOY
發布: 2016-09-14 09:41:23
原創
2249 人瀏覽過

<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來處理。

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板