我直接在mysql數據庫中存儲圖像。什麼是使用php以高質量顯示圖像(縮略圖和原始尺寸圖像)的最佳方式。在php中顯示圖像的最佳方式
回答
所以,你正在存儲圖像文件的二進制內容在你的數據庫(可能是一個BLOB字段),對不對?
顯示原始大小圖像並不是什麼大問題,我希望你已經存儲了原始圖像的文件名/文件擴展名(或至少是MIME類型)以及二進制數據。
如果你的表images
e。 G。包含兩個,content
持有二進制數據和file_name
持有的文件名和文件擴展存儲的圖像,你可以認爲這樣的代碼:
$res = mysql_query("select * from images");
while($row = mysql_fetch_assoc($res)) {
$pathname = 'some/path/' . $row['file_name'];
file_put_contents($pathname, $row['content']);
}
這樣做是從images
選擇表中所有條目並將數據庫中的二進制內容寫入以orignal映像命名的outfile。根據您的服務器設置,考慮在寫入outfile之後設置[chmod][1]
。
如果您沒有可用的文件名屬性,那麼您必須生成一些隨機的名稱(可能使用md5($row['content'])
?可能會非常慢)。但是你需要原來的文件擴展名或存儲的圖像的MIME類型,否則其不容易發現,如果圖像是abc.JPG
或abc.PNG
或abc.GIF
等
現在,您可以訪問您創建的圖像(如XYZ.jpg
)使用http://www.domain.com/some/path/XYZ.jpg
如果some/path/
位於您的文檔根文件夾中。
隨着原始圖像存儲在磁盤上,很容易創建一個縮略圖。我衷心推薦Imagemagick(檢查是否安裝在您的服務器上),但您也可以使用與PHP捆綁在一起的PHPs GDLib推出自己的縮略圖腳本,並且很可能會提供。已經有很多PHP預建的縮略圖腳本依賴於Imagemagick和/或GDLib。我還沒有嘗試,但聽到關於phpThumb()好東西。
最後一句話:您可能已經注意到了,將圖像作爲二進制數據存儲在數據庫中並不是一個好主意。當然,如果應用程序已經構建好了,而且你必須按照它們的方式來處理事情,那麼你就沒有選擇。但在性能方面,將數據庫路徑名和一些元數據(比如文件大小,寬度,高度等)一起存儲在數據庫中會更好,可以減小數據庫的大小,並使用select/php代碼快速處理結果集。
使用php以高質量顯示圖像(縮略圖和原始尺寸圖像)的最佳方式是將原始圖像和縮略圖存儲在文件系統中,然後生成一個<img>
標記以顯示它。
- 1. 在WPF中顯示圖像的最佳方式
- 2. 顯示動畫圖像的最佳方式(HTML/CSS/JS)
- 3. 在jsp頁面中顯示圖像的最佳方法
- 4. 在Flash(AS3)中顯示自定義地圖的最佳方式?
- 5. 在視圖中顯示靜態文本的最佳方式RubyMotion
- 6. 在ASP.NET中顯示縮略圖的最佳方式是什麼?
- 7. 緩慢加載圖像,顯示臨時圖像的最佳方式?也許JQuery?
- 8. 什麼是在ASP.NET中顯示隨機圖像的最佳方式?
- 9. 最佳的方式在PHP
- 10. 使用最少的JQuery顯示放大圖像的最佳方式是什麼?
- 11. 顯示SQL結果的最佳方式
- 12. 顯示12列表的最佳方式
- 13. 在android中顯示圖像的最佳視圖是什麼?
- 14. 加載圖像的最佳方式
- 15. 預加載圖像的最佳方式
- 16. Kindle - 保存圖像的最佳方式
- 17. 預加載圖像的最佳方式
- 18. 在iPad上顯示圖像/幻燈片/容器的最佳方式是什麼?
- 19. 在rails和載波上傳之前顯示圖像預覽的最佳方式
- 20. 什麼是在.NET中「平方」圖像的最佳方式?
- 21. 什麼是通過PHP顯示SQL表的最佳方式?
- 22. 的最佳方式 - PHP 5.5
- 23. 用精靈顯示圓角圖像的最佳方法
- 24. 爲Retina顯示屏增加圖像尺寸的最佳方法?
- 25. 用PHP添加圖像到mp3文件的最佳方式?
- 26. 最佳方式存儲上傳圖像
- 27. 在WPF的Mail.Body中顯示HTML內容的最佳方式
- 28. 從網頁獲取圖像以顯示在android應用程序圖像視圖上的最佳方式?
- 29. 哪一個是在Flex中顯示HTML的最佳方式?
- 30. 在Angular2中顯示進度條的最佳方式是什麼?