情境:多張圖片上傳
//解晰圖片
$image_type=getimagesize($_FILES['x'.$im]['tmp_name']);
switch ($image_type[2]){
case "1"://gif
$src = imagecreatefromgif($_FILES['x'.$im]['tmp_name']);
break;
case "2": //jpg
$src = imagecreatefromjpeg($_FILES['x'.$im]['tmp_name']);
break;
case "3":
$src=imagecreatefrompng($_FILES['x'.$im]['tmp_name']);
break;
default:
echo '
ERROR!!請通知系統人員。
';
exit;
}
壓縮圖檔1:$file_name = $_FILES['image'.$im]['name'];
$src_w = imagesx($src);
$src_h = imagesy($src);
if($src_w > $src_h){
$thumb_w = 150;
$thumb_h = intval($src_h / $src_w * 150);
}else{
$thumb_h = 110;
$thumb_w = intval($src_w / $src_h * 110);
}
壓縮圖檔2:// 建立縮圖
$thumb = imagecreatetruecolor($thumb_w, $thumb_h);
// 開始縮圖
imagecopyresampled($thumb, $src, 0, 0, 0, 0, $thumb_w, $thumb_h, $src_w, $src_h);
// 假設要長寬不超過90
// 複製上傳圖片到指定 images 目錄
$number = strrpos($file_name,".");
$orig_name = substr($file_name,0,$number);
$sub_file_name = substr($file_name,$number+1);
$new_file_name = time()."_".$num.".".$sub_file_name;
$dest_filename = $upload_dir.$new_file_name;
$sql="插入db所需要的資料";
mysql_query($sql);
$r=mysql_affected_rows();
圖檔儲存在伺服器if($r>0) {
switch ($image_type[2]){
case "1"://gif
imagegif($thumb, 'path'.$dest_filename);
copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename);
break;
case "2": //jpg
imagejpeg($thumb, "path".$dest_filename);
copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename);
break;
case "3": //png
imagepng($thumb, "path".$dest_filename);
copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename);
break;
}
}
form 的元素: enctype='multipart/form-data'列出上傳的檔案資訊:
print_r($_FILES)
上傳多個標檔案--例子:
科目<input type='file' name='con_subject[]'><br>
科目<input type='file' name='con_subject[]'><br>
科目<input type='file' name='con_subject[]'><br>
接收端
第一個檔案: $_FILES['con_subject']['name'][0]
解釋:getimagesize
imagecreatefromgif
imagepng
沒有留言:
張貼留言