首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 接收二進位原始資料並儲存為圖片

     編輯:PHP 相關知識

PHP 接收二進位原始資料並儲存為圖片

常見於手機 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'),相容性最佳。
  • 實際專案建議加入 MIME 驗證、檔案大小限制、防止惡意上傳。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved