/*
- * 參數說明
- * $max_file_size : 上傳檔案大小限制, 單位BYTE
- * $destination_folder : 上傳檔案路徑
- * $watermark : 是否附加浮水印(1為加浮水印,其他為不加浮水印);
- * http://bbs.it-home.org
- * 使用說明:
- * 1. 將PHP.INI檔案裡面的"extension=php_gd2.dll"一行前面的;號去掉,因為我們要用到GD庫;
- * 2. 將extension_dir =改為你的php_gd2.dll所在目錄;
- */
- // 上傳檔案類型列表
- $uptypes = array (
- 'image/jpg',
- 'image/png',
- 'image/jpeg',
- 'image/pjpeg',
- 'image/gif',
- 'image/bmp',
- 'image/x-png'
- );
- $max_file_size = 20000000; //上傳檔案大小限制,單位BYTE
- $destination_folder = 'uploadimg/'; //上傳檔案路徑
- $watermark = 1; //是否附加浮水印(1為加浮水印,其他為不加浮水印);
- $watertype = 1; //浮水印類型(1為文字,2為圖片)
- $waterposition = 1; //浮水印位置(1為左下角,2為右下角,3為左上方,4為右上方,5為置中);
- $waterstring = "http://bbs.it-home.org/"; //浮水印字串
- $waterimg = "xplore.gif"; //浮水印圖片
- $imgpreview = 1; //是否產生預覽圖(1為產生,其他為不產生);
- $imgpreviewsize = 1 / 2; //縮圖比例
- ?>
- ZwelL圖片上傳程式
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
- //判斷是否有上傳檔案
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
- $upfile = $_FILES['upfile'];
- print_r($_FILES['upfile']);
- $name = $upfilep['name']; //檔案名稱
- $type = $upfile['type']; //檔案類型
- $size = $upfile['size']; //檔案大小
- $tmp_name = $upfile['tmp_name']; //臨時檔案
- $error = $upfile['error']; //出錯原因
if ($max_file_size < $size) { //判斷檔案的大小
- echo '上傳檔案太大';
- exit ();
- }
if (!in_arrar($type, $uptypes)) { //判斷檔案的類型
- echo '上傳檔案類型不符' . $type;
- exit ();
- }
if (!file_exists($destination_folder)) {
- mkdir($destination_folder);
- }
if (file_exists("upload/" . $_FILES["file"]["name"])) {
- echo $_FILES["file"]["name"] . " already exists. ";
- } else {
- move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
- echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
- }
$pinfo = pathinfo($name);
- $ftype = $pinfo['extension'];
- $destination = $destination_folder . time() . "." . $ftype;
- if (file_exists($destination) && $overwrite != true) {
- echo "同名的檔案已經存在了";
- exit ();
- }
if (!move_uploaded_file($tmp_name, $destination)) {
- echo "移動檔案出錯";
- exit ();
- }
$pinfo = pathinfo($destination);
- $fname = $pinfo[basename];
- echo " 已經成功上傳
檔案名稱: " . $destination_folder . $fname . " ";
- echo " 寬度:" . $image_size[0];
- echo " 長度:" . $image_size[1];
- echo "
大小:" . $file["size"] . " bytes";
if ($watermark == 1) {
- $iinfo = getimagesize($destination, $iinfo);
- $nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
- $white = imagecolorallocate($nimage, 255, 255, 255);
- $black = imagecolorallocate($nimage, 0, 0, 0);
- $red = imagecolorallocate($nimage, 255, 0, 0);
- imagefill($nimage, 0, 0, $white);
- switch ($iinfo[2]) {
- case 1 :
- $simage = imagecreatefromgif($destination);
- break;
- case 2 :
- $simage = imagecreatefromjpeg($destination);
- break;
- case 3 :
- $simage = imagecreatefrompng($destination);
- break;
- case 6 :
- $simage = imagecreatefromwbmp($destination);
- break;
- default :
- die("不支援的檔案類型");
- exit;
- }
imagecopy($nimage, $simage, 0, 0, 0, 0, $image_size[0], $image_size[1]);
- imagefilledrectangle($nimage, 1, $image_size[1] - 15, 80, $image_size[1], $white);
switch ($watertype) {
- case 1 : //加浮水印字串
imagestring($nimage, 2, 3, $image_size[1] - 15, $waterstring, $black);
- break;
- case 2 : //加浮水印圖片
$simage1 = imagecreatefromgif("xplore.gif");
- imagecopy($nimage, $simage1, 0, 0, 0, 0, 85, 15);
- imagedestroy($simage1);
- break;
- }
switch ($iinfo[2]) {
- case 1 :
- //imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
- break;
- case 2 :
- imagejpeg($nimage, $destination);
- break;
- case 3 :
- imagepng($nimage, $destination);
- break;
- case 6 :
- imagewbmp($nimage, $destination);
- //imagejpeg($nimage, $destination);
- break;
- }
//覆蓋原上傳檔案
- imagedestroy($nimage);
- imagedestroy($simage);
- }
if ($imgpreview == 1) {
- echo "
圖片預覽: ";
- echo " echo " alt=\"圖片預覽:\r檔案名稱:" . $destination . "\r上傳時間:\">";
- }
- }
- }
- ?>
複製代碼您可能感興趣的文章:php 多圖片上傳的簡單例子(圖文)php檔案上傳時遇到的一個問題(move_uploaded_file)php普通表單多檔案上傳的代碼瞭解PHP檔案上傳的原理php簡單檔案上傳的例子php判斷上傳檔案的檔案類型的幾種方法一個php上傳下載檔案的源碼一個好用的php檔案上傳處理類php上傳多個檔案的代碼php多檔案上傳的三種方法php上傳圖片功能的實現 |