NHANWEB

PHP & JQuery Photo Upload and Crop

Chiêu thức này khá hay nhưng hiện nay chưa phổ biến (mình thấy ít website có tính năng này, phần lớn là các site mạng xã hội cho phép upload và chỉnh sửa avatar mà thôi). Nói nôm na nó là thế này: upload ảnh lên và cắt ảnh theo yêu cầu của mình. Chấm hết !!!!

Nói thế thôi, nhưng nếu website chúng ta có tính năng này thì nhìn sẽ hết sức pro ah nha. Đầu tiên, chúng ta hãy xem một ví dụ này: PHP & JQuery Photo Upload and Crop demo. Do hosting của mình không đảm bảo được việc để các bạn upload hình ảnh thoải mái nên tạm thời mình khóa tính năng upload và chỉ giữ lại tính năng crop ảnh để mọi người xem. Phần upload chắc không phải là vấn đề gì khó khăn đối với anh em lập trình web. :).

Mình sẽ giành ít phút để anh em xem ví dụ đã….. mình sẽ đợi, cứ test thoải mái nhé…

PHP & JQuery Photo Upload and Crop

Được rồi !

Sau khi mọi người xem xong ví dụ, câu hỏi đặt ra sẽ là chúng ta sẽ làm nó như thế nào đây !!!!

Chúng ta cần những gì.

OK ! Chúng ta chỉ cần có thế thôi. Giờ là công đoạn bắt tay thực hiện tut này:

PHP & JQuery Photo Upload and Crop

1. Trước tiên,chúng ta cần tạo một form PHP cho phép bạn upload hình ảnh lên

[code] <form action="upload.php" enctype="multipart/form-data" method="post">
Photo
<input name="image" size="30" type="file">
<input name="upload" value="Upload" type="submit">
</form>
[/code]

2. Bước tiếp theo bạn cần là một đoạn code PHP cho phép bạn upload hình ảnh lên và resize lại nó. Đoạn code này mỗi người mỗi kiểu nên mình không mô tả rõ nữa nha. Làm thế nào tùy bạn :D

[code language=”php”] if (isset($_POST["upload"])) {
//Get the file information
$userfile_name = $_FILES["image"]["name"];
$userfile_tmp = $_FILES["image"]["tmp_name"];
$userfile_size = $_FILES["image"]["size"];
$filename = basename($_FILES["image"]["name"]);
$file_ext = substr($filename, strrpos($filename, ".") + 1);

//Only process if the file is a JPG and below the allowed limit
if((!empty($_FILES["image"])) && ($_FILES["image"]["error"] == 0)) {
if (($file_ext!="jpg") && ($userfile_size > $max_file)) {
$error= "ONLY jpeg images under 1MB are accepted for upload";
}
}else{
$error= "Select a jpeg image for upload";
}
//Everything is ok, so we can upload the image.
if (strlen($error)==0){

if (isset($_FILES["image"]["name"])){

move_uploaded_file($userfile_tmp, $large_image_location);
chmod ($large_image_location, 0777);

$width = getWidth($large_image_location);
$height = getHeight($large_image_location);
//Scale the image if it is greater than the width set above
if ($width > $max_width){
$scale = $max_width/$width;
$uploaded = resizeImage($large_image_location,$width,$height,$scale);
}else{
$scale = 1;
$uploaded = resizeImage($large_image_location,$width,$height,$scale);
}
//Delete the thumbnail file so the user can create a new one
if (file_exists($thumb_image_location)) {
unlink($thumb_image_location);
}
}
//Refresh the page to show the new uploaded image
header("location:".$_SERVER["PHP_SELF"]);
exit();
}
}
[/code]

Trong đoạn code trên có 1 số điểm đáng chú ý như sau:

Exit mobile version