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

PHP 圖片上傳完整元件:型別驗證、水印、縮圖預覽與即時複製連結

     編輯:PHP 綜合知識

功能特色

  • 支援 jpg、png、gif、bmp、swf、mp3、wma、zip、rar、doc 等多種型別
  • 檔案大小限制(預設 10MB)
  • 可選文字/圖片水印,九宮格位置
  • 上傳後自動產生縮圖預覽
  • 前端即時預覽選取圖片、一鍵複製連結/UBB 代碼

核心設定區

$uptypes = ['image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp',
    'application/x-shockwave-flash','image/x-png','application/msword',
    'audio/x-ms-wma','audio/mp3','application/vnd.rn-realmedia',
    'application/x-zip-compressed','application/octet-stream'];
$max_file_size = 10000000; // 10MB
$destination_folder = 'up/';
$watermark = 1; // 1=加水印
$watertype = 1; // 1=文字 2=圖片
$waterposition = 2; // 1~5 九宮格
$waterstring = 'www.example.com';
$waterimg = 'watermark.gif';
$imgpreview = 1; // 產生預覽
$imgpreviewsize = 1; // 縮放比例

上傳處理流程

  1. is_uploaded_file() 確認暫存檔存在
  2. 檢查大小 $_FILES['upfile']['size']
  3. in_array($file['type'], $uptypes) 驗證 MIME
  4. move_uploaded_file() 移至目的資料夾,檔名採 time().'.'.$ext 避免衝突
  5. 水印處理:imagecreatetruecolor 建立畫布 → imagecopy 貼原圖 → imagestring 或 imagecopy 加水印 → 覆蓋存檔
  6. 縮圖預覽:直接輸出 <img src=... width=... height=...>

前端互動亮點

  • onchange="FileChange(this.value)" 即時顯示選取圖片縮圖
  • onmouseover="oCopy(this)" 滑鼠移入自動複製連結
  • Checkbox 切換純連結 / UBB 代碼顯示

安全性補強建議

  1. 伺服器端再次以 getimagesize() 驗證真實圖片格式
  2. 上傳目錄設定 php_flag engine off 禁止腳本執行
  3. 檔名採雜湊值(如 sha1(microtime(true)))避免猜測
  4. 限制單一 IP 上傳頻率
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved