情境:多張圖片上傳
//解晰圖片 $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
沒有留言:
張貼留言