2013-01-06 207 views
-1

可能重複:
How to prevent SQL injection in PHP?
PHP resize and upload an image上上傳調整照片的大小

我有一個網站,用戶可以上傳照片。現在,我開始意識到一些照片需要重新調整大小和轉換。我知道如何上傳和移動照片,但如果它們太大,我如何重新調整它們的大小,並將它們轉換爲JPEG格式(如果它們不是這樣)?

這是我的PHP:

if ($_FILES['media']['size'] != 0) { 
    $target= UPLOADPATH . $media; 
    move_uploaded_file($_FILES['media']['tmp_name'], $target); 
    $query= "INSERT INTO posts (user_id, story, media, date, view, type) VALUES  
      ('$user_id', '$story', '$media', now(), '$view', '1')"; 
    mysqli_query($connect, $query) 
     or die('error with query 2'); 
} 
+0

[resize](http://stackoverflow.com/questions/6608586/php-resize-and-upload-an-image)和[convert to jpg](http://stackoverflow.com/questions/6889543/轉換-bmp-jpg-in-php) –

回答

3

這裏有一個建議:

讓你將接受文件的一些規則(例如JPEG和PNG,小於2MB,最大500萬像素) 。將「可接受的」文件存儲在一個方便的位置,可能位於文檔根目錄之外。

不要在上傳上重新調整圖像大小。按需重新調整圖像大小,例如使用phpThumb **。

這種方法將證明比上傳重新調整圖片大小,從長遠來看更好的:你永遠需要處理所有的(可能是數百個)圖像時:

  • 您的網站佈局更改
  • 你項目需求變更
    • 您添加收藏風格的幻燈片,突然你需要它的縮略圖
  • 您要爲不同的R解決方案到不同的設備
  • 您需要處理圖像(例如,寫上圖片您的公司名稱)
    • 您的公司名稱改變
  • 你被告知所有縮略圖需要改變,以方

**當使用phpThumb,我建議開支有一段時間會通過它的配置。特別是安全和緩存相關的設置。創建輸出圖像分辨率的白名單也是一個好主意。

+0

但是,建議大量緩存圖像。不太可能更改的圖像和大小最好長時間緩存。 –

+0

的確如此,值得一提的是。 phpThumb具有該功能。 –

+0

只是提起它:) –