PHP: Upload และปรับเปลี่ยนขนาดรูปภาพ

!! ถ้า upload ไม่ผ่าน ให้เซ็ต permission เป็น 777
แต่ถ้ายัง upload ไม่ผ่านอีก อาจเป็นเพราะไม่สามารถเซ็ต permission จาก ftp client ได้
ให้ไปเซ็ต permission ที่ panel ให้เป็น 777

$_FILES[‘var’][‘tmp_name’] แสดงเท็มสำหรับการอัพโหลด
$_FILES[‘var’][‘name’] แสดงชื่อไฟล์
$_FILES[‘var’][‘size’] แสดงขนาดของไฟล์มีหน่วยเป็นไบต์
$_FILES[‘var’][‘type’] แสดงประเภทของไฟล์
$_FILES[‘var’][‘error’] แสดงรายละเอียดข้อผิดพลาด

ไฟล์ .html

[code lang=”html”]</pre>
<form action="upload_resize.php" enctype="multipart/form-data" method="post">
<h2>Form upload and resize image.</h2>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="fileupload" />

<input type="submit" value="submit" />
<input type="reset" value="Reset" />
</form>
<pre>

[/code]

ไฟล์ .php

[code lang=”php”]
<?php
function imageResize( $ext, $ori_file, $new_file )
{
$max_imageSize = 400;
$ori_size = getimagesize($ori_file);
$ori_w = $ori_size[0];
$ori_h = $ori_size[1];

if($ori_w > $ori_h) {
$new_w = $max_imageSize;
$new_h = round(($new_w/$ori_w) * $ori_h);
}
else
{
$new_h = $max_imageSize;
$new_w = round(($new_h/$ori_h) * $ori_w);
}

if ($ext == "jpg" or $ext == "jpeg") {
$ori_img = imagecreatefromjpeg($ori_file);
} else
if ($ext == "png") {
$ori_img = imagecreatefrompng($ori_file);
} else
if ($ext == "gif") {
$ori_img = imagecreatefromgif($ori_file);
}

$new_img = imagecreatetruecolor($new_w, $new_h);
imagecopyresized($new_img, $ori_img, 0, 0, 0, 0, $new_w, $new_h, $ori_w, $ori_h);
if ($ext == "jpg" or $ext == "jpeg") {
imagejpeg($new_img, $new_file);
} else
if ($ext == "png") {
imagepng($new_img, $new_file);
} else
if ($ext == "gif") {
imagegif($new_img, $new_file);
}

imagedestroy($ori_img);
imagedestroy($new_img);
}

$imagePath = "./uploads/";
$new_file = $imagePath . "test_resize.jpg";
//echo $new_file;
echo "<br>";

$fileupload = $_FILES[‘fileupload’][‘tmp_name’];
$fileupload_name = $_FILES[‘fileupload’][‘name’];
$fileupload_size = $_FILES[‘fileupload’][‘size’];
$fileupload_type = $_FILES[‘fileupload’][‘type’];

echo $fileupload;
echo "<br>";
echo $fileupload_name;
echo "<br>";

$ext = strtolower(end(explode(‘.’, $fileupload_name)));

if ($ext == "jpg" or $ext == "jpeg" or $ext == "png" or $ext=="gif") {
copy($fileupload, $imagePath . $fileupload_name);

$ori_file = $imagePath . $fileupload_name;
imageResize( $ext, $ori_file, $new_file );
unlink($fileupload);

echo "<H1>Upload and resize complete</h1>";
} else {
echo "<h1>Error</h1>";
}
?>
[/code]

ที่มา: thaicreate.com/

PHP: เปลี่ยนขนาดรูปภาพ JPEG

[code lang=”php”]
<?php
function imageResize( $ori_file, $new_file )
{
$max_imageSize = 100;
$ori_size = getimagesize($ori_file);
$ori_w = $ori_size[0];
$ori_h = $ori_size[1];

if($ori_w > $ori_h) {
$new_w = $max_imageSize;
$new_h = round(($new_w/$ori_w) * $ori_h);
}
else
{
$new_h = $max_imageSize;
$new_w = round(($new_h/$ori_h) * $ori_w);
}

$ori_img = imagecreatefromjpeg($ori_file);
$new_img = imagecreatetruecolor($new_w, $new_h);
imagecopyresized($new_img, $ori_img, 0, 0, 0, 0, $new_w, $new_h, $ori_w, $ori_h);

imagejpeg($new_img, $new_file);
imagedestroy($ori_img);
imagedestroy($new_img);
}

$imagePath = "./images/";
$ori_file = $imagePath . "test.jpg";
$new_file = $imagePath . "test_resize.jpg";

echo "<H1>Start resizing image</h1>";
imageResize( $ori_file, $new_file );

echo "<H1>Resize complete</h1>";
echo "<img src=’$ori_file’>";
echo "<img src=’$new_file’>";
?>
[/code]