常見於手機 APP 上傳圖片、WebSocket 傳輸二進位流等情境。核心步驟:取得 php://input 原始資料 → 寫入檔案 → 驗證。
<?php
// 設定儲存目錄與檔名
$imgDir = 'uploadImg/';
$filename = "nissangcj_{$mobile}.jpg"; // 含手機號等唯一識別
// 取得原始 POST 資料
$xmlstr = $GLOBALS['HTTP_RAW_POST_DATA'];
if (empty($xmlstr)) {
$xmlstr = file_get_contents('php://input');
}
$jpg = $xmlstr;
if (empty($jpg)) {
echo 'nostream';
exit();
}
// 寫入檔案
$file = fopen("./{$imgDir}{$filename}", "w");
fwrite($file, $jpg);
fclose($file);
// 驗證檔案是否存在
$filePath = "./{$imgDir}{$filename}";
if (!file_exists($filePath)) {
echo 'createFail';
exit();
}
echo 'success';
?>
$GLOBALS['HTTP_RAW_POST_DATA'] 需 php.ini 設定 always_populate_raw_post_data = On(PHP 5.6+ 已棄用)。file_get_contents('php://input'),相容性最佳。