這個上傳是可選的,如果有,連同表單在內的其他欄位一齊有PUT方式發送過來,那麼怎麼判斷傳過來的有沒有上傳檔案檔案呢?
我現在的解決辦法是,讀取PUT檔案併入到一個臨時檔案裡面,再用fiesize判斷這個檔案大小,如果為0的時候說明沒有上傳,但覺得這樣做不穩妥,來請教一下。
$handle = fopen('php://input', 'r'); $fp = fopen($tmp_as, "w+"); while ($data = fread($handle, 1024)) { fwrite($fp, $data); } fclose($fp); fclose($handle); if(filesize($tmp_as) && getimagesize($tmp_as)) {//檔案是個映像,所以用了getimagesize函數 echo '//TODO 有檔案上傳並處理'; } else { echo '沒有檔案上傳'; }
回複內容:
這個上傳是可選的,如果有,連同表單在內的其他欄位一齊有PUT方式發送過來,那麼怎麼判斷傳過來的有沒有上傳檔案檔案呢?
我現在的解決辦法是,讀取PUT檔案併入到一個臨時檔案裡面,再用fiesize判斷這個檔案大小,如果為0的時候說明沒有上傳,但覺得這樣做不穩妥,來請教一下。
$handle = fopen('php://input', 'r'); $fp = fopen($tmp_as, "w+"); while ($data = fread($handle, 1024)) { fwrite($fp, $data); } fclose($fp); fclose($handle); if(filesize($tmp_as) && getimagesize($tmp_as)) {//檔案是個映像,所以用了getimagesize函數 echo '//TODO 有檔案上傳並處理'; } else { echo '沒有檔案上傳'; }
表單提交後,列印$_FILES['myfile']看看,這個就是你上傳的圖片(tmp結尾的臨時檔案),需要移動檔案,用move_uploaded_file函數