讀取圖檔問題

edited 十月 2013 in PHP新手區
各位先進,大家好~

 目前遇到一個讀取圖檔(.jpg)時檔案size不一樣的問題,即我使用下列語法以讀取一個圖檔,但發現使用filesize()與fread()所讀取出來之檔案大小不一樣,透過filesize()讀取之檔案大小應為304281(這是正確的),但透過fread()函數讀取後,再利用strlen計算其大小卻變成308389(這是錯誤的),是否可請各位先進幫忙,謝謝~

程式碼如下:
$fd = fopen ("photo/ic/aa.jpg", "rb");
$fsize = filesize ("photo/ic/aa.jpg");
$content = fread ($fd, $fsize);
fclose ($fd);

echo $fsize."<br>";
echo strlen($content)."<br>";

echo執行結果如下:
304281
308389

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2207

評論

  • edited 十月 2006
    感覺很詭異
    fread會讀取到檔尾或指定長度
    照理不會比限定的長度大才對?

    以你的程式來測試
    我用fread ($fd, $fsize/2);
    都能正確反應長度(長度的1/2)沒有任何問題
Sign In or Register to comment.