色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

formdata php讀取

劉若蘭1年前6瀏覽0評論
FormData是HTML5中新增的一種數據類型,它可以利用JavaScript將表單數據封裝成一組鍵值對,方便提交給后臺服務器。而PHP中的$_POST和$_FILES可以讀取表單提交的鍵值對和文件數據。但是,對于一些特殊的表單數據類型,比如需要上傳大文件,需要支持表單的異步提交等等,使用FormData會更加方便。那么,如何在PHP中讀取這個表單數據呢?下面我們就來詳細介紹一下。 常規的表單提交方式 在常規的表單提交中,我們可以使用$_POST和$_FILES來讀取表單數據和文件數據。比如下面的表單: ```
``` 在PHP中,我們可以使用$_POST和$_FILES來讀取這個表單數據: ``` $username = $_POST['username']; $password = $_POST['password']; $avatar = $_FILES['avatar']['tmp_name']; ``` 這里需要注意的是,對于文件類型的表單數據,需要使用$_FILES來讀取。而讀取文件數據時,需要使用$_FILES['avatar']['tmp_name'],因為上傳的文件首先會被臨時保存在服務器上,tmp_name就是這個臨時文件的文件名。 使用FormData提交表單數據 而如果我們使用FormData來提交表單數據,代碼如下: ``` var formData = new FormData(); formData.append('username', 'zhangsan'); formData.append('password', '123456'); formData.append('avatar', avatarFile); // avatarFile為文件類型的表單數據 $.ajax({ url: 'submit.php', type: 'post', data: formData, contentType: false, // 重要,告訴jQuery不要設置Content-Type請求頭 processData: false // 重要,告訴jQuery不要處理發送的數據 }).done(function(res) { console.log(res); }); ``` 在PHP中,需要使用$_POST和$_FILES來讀取這個表單數據,但是此時$_FILES['avatar']['tmp_name']是空的,因為FormData已經將文件數據封裝成了二進制數據并發送到了后臺。那么,如何讀取這個二進制數據呢? 使用php://input讀取二進制數據 在PHP中,我們可以使用php://input來讀取請求體中的二進制數據。php://input是一個只讀流,可以訪問通過POST、PUT和其他HTTP請求方法發送的原始請求數據。因此,如果我們想要讀取以二進制形式發送的表單數據,就可以使用php://input來讀取。代碼如下: ``` $inputString = file_get_contents('php://input'); parse_str($inputString, $formData); $username = $formData['username']; $password = $formData['password']; ``` 使用php://input讀取二進制數據可能比較麻煩,但是它具有靈活性和可擴展性,并且可以用來處理二進制數據的特殊情況。 總結 通過以上的介紹,我們了解了如何使用FormData提交表單數據,并在PHP中讀取這個表單數據。對于常規的表單數據類型,我們可以使用$_POST和$_FILES來讀取;而對于通過FormData提交的二進制數據,可以使用php://input來讀取。PHP中的文件上傳和表單數據處理一直是個比較復雜的問題,但是了解相關的知識點,可以更好的解決這個問題。