久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PHP輸出的有效圖像總是“包含錯誤”,可能導(dǎo)致這種情況,?

 印度阿三17 2019-05-21

幾個月前,我使用PHP 5.3為客戶編寫了一個網(wǎng)站.它在我自己的LAMP網(wǎng)絡(luò)服務(wù)器上完美運(yùn)行.但是,當(dāng)他試圖將它安裝在自己的服務(wù)器上時(目前是在CentOS 5上運(yùn)行DirectAdmin的OVH服務(wù)器),他遇到了一個我無法搞清楚的問題.

該網(wǎng)站可以存儲通過表格上傳的圖像.圖像在上載時加水印并移動到Web服務(wù)器中的目錄(某些元數(shù)據(jù)存儲在數(shù)據(jù)庫中,但這與此問題無關(guān)).

為了將這些圖像顯示給用戶,使用腳本如下:

header("Content-type: image/jpeg");
ob_start();
echo file_get_contents($path);
$size = ob_get_length();
$img = ob_get_contents();
ob_end_clean();
header ("Content-length: " . $size);
echo $img;

不幸的是,這總是會返回一個損壞的圖像(在Firefox中,“圖像無法顯示,因為它包含錯誤”).現(xiàn)在,經(jīng)過仔細(xì)測試,我知道:

>圖像已正確上載到服務(wù)器.存儲在網(wǎng)絡(luò)服務(wù)器中的圖像數(shù)據(jù)是有效的,可以通過FTP作為常規(guī)圖像獲得.
>如果我將$img存儲在前一個腳本的最后一行之前的文件中,如下所示:

$fh = fopen("test.jpg", "w");
fwrite($fh, $img);
fclose($fh);

它還會將正確的圖像數(shù)據(jù)保存到文件中.因此,數(shù)據(jù)在發(fā)送到用戶的Web瀏覽器之前立即完好無損.
>正在正確發(fā)送標(biāo)頭.

然而!如果我使用text / plain標(biāo)頭而不是image / jpeg,我可以看到返回的亂碼與顯示的亂碼不同,如果我用記事本本地打開文件(或直接通過apache將圖像作為文本文件發(fā)送).在原始圖像中,我可以看到一些EXIF.在PHP生成的圖像中,然后發(fā)送到用戶的Web瀏覽器,我仍然看到JFIF魔術(shù)代碼(用于JPEG文件圖像格式),但其余的看起來不同.

我擔(dān)心我在PHP或Apache上遇到與編碼,緩沖,內(nèi)容壓縮等相關(guān)的配置相關(guān)問題.有誰知道我可以嘗試解決這個問題嗎,?

編輯:

更改了要使用的腳本:

$img = file_get_contents($path);
$size = filesize($path);

問題保持不變,但現(xiàn)在內(nèi)容與真實(shí)圖像與PHP發(fā)送的圖像相比看起來完全相同.根據(jù)標(biāo)題,內(nèi)容編碼是gzip.有任何想法嗎,?

解決方法:

好吧,經(jīng)過一些調(diào)查后,它變成了臭名昭著的字節(jié)順序標(biāo)記簽名(當(dāng)然,還有輸出緩沖,它可以抑制錯誤).
它似乎只是重新保存文件沒有BOM將解決問題

它有用嗎?

header("Content-type: image/jpeg");
echo file_get_contents($path);

或這個,?

header("Content-type: image/jpeg");
readfile($path);

下載此圖像(使用wget或在其上創(chuàng)建鏈接并使用“另存為”)并查看差異.它可能會揭示原因

是的ob在這里絕對無事可做.如果你想獲得一個文件大小 – 有一個(驚喜,!)函數(shù)

header("Content-type: image/jpeg");
header ("Content-length: " . filesize($path));
readfile($path);
來源:http://www./content-1-201001.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多