php作為一種常用的后端編程語言,在網站開發(fā)領域有著廣泛的應用。其中,圖片上傳以及裁剪是網站開發(fā)中常用的功能之一。下面將介紹如何使用php實現(xiàn)圖片上傳與裁剪功能。
一、圖片上傳功能
首先介紹圖片上傳功能的實現(xiàn)。以下代碼為一個簡單的圖片上傳功能的實現(xiàn):
<html> <head> <meta charset="UTF-8"> <title>圖片上傳</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上傳"> </form> </body> </html>
這個頁面中有一個表單,表單的action屬性指向一個名為upload.php的處理腳本。表單的enctype屬性必須設置為“multipart/form-data”,才能上傳二進制文件。這里提供了一個簡單的表單,可以根據需要進行修改。
下面是upload.php的處理腳本:
立即學習“PHP免費學習筆記(深入)”;
<?php // 指定文件上傳的目錄 $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); // 獲取文件類型 $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 檢查文件是否是圖片 if(isset($_POST["submit"])) { $check = getimagesize($_FILES["file"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // 如果文件已經存在,提示并退出 if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // 檢查文件大小 if ($_FILES["file"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // 允許上傳的圖片類型 if($imageFileType != "jpg" && $imageFileType != "jpeg" && $imageFileType != "png" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // 如果沒有錯誤,進行文件上傳 if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; } else { if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?>
該腳本首先獲取上傳的文件處理目標路徑和文件類型,再進行文件類型以及文件大小的檢查。如果文件類型和大小都符合標準,則進行文件上傳,否則提示錯誤信息。
二、圖片裁剪功能
圖片裁剪功能是指在上傳圖片之后,對圖片進行裁剪等處理,使得圖片大小、比例等符合要求。下面介紹如何利用PHP實現(xiàn)圖片裁剪功能。在本文中,我們使用PHP庫——GD庫來進行圖片的處理。
在使用GD庫之前,需要保證該庫已經被安裝,否則需要進行安裝。在Linux系統(tǒng)中,可以通過下列命令安裝GD庫:
sudo apt-get install php7.2-gd
在Windows系統(tǒng)中,在php的配置文件php.ini中找到如下語句:
;extension=php_gd2.dll
將其變?yōu)椋?/p>
extension=php_gd2.dll
保存并重啟php即可。
在使用GD庫之前,需要先將圖片載入到程序中??梢允褂肐magecreatefromjpeg()、Imagecreatefrompng()、Imagecreatefromgif()等函數(shù)載入不同格式的圖片。下面是一個簡單的裁剪程序:
//載入原圖 $src = imagecreatefromjpeg('test.jpg'); //裁剪原圖 $dst = imagecreatetruecolor(100, 100); imagecopyresampled($dst, $src, 0, 0, 50, 50, 100, 100, 100, 100); //保存裁剪后的圖片 imagejpeg($dst, 'test_crop.jpg'); //釋放原圖和裁剪后的圖片 imagedestroy($src); imagedestroy($dst);
該程序使用圖片處理函數(shù)imagecreatetruecolor()生成一張空白圖片,在使用imagecopyresampled()函數(shù)將原圖裁剪并復制到空白圖片中。最后使用imagejpeg()函數(shù)將裁剪后的圖片保存。
三、總結
在PHP中,使用上傳表單和GD庫可以輕易地實現(xiàn)上傳和裁剪圖片的功能。該功能在網站開發(fā)中非常常用,掌握基本的上傳和裁剪圖片的技巧,對于初學網站開發(fā)的同學有著不可估量的幫助。
以上就是PHP實現(xiàn)圖片上傳與裁剪功能的詳細內容,更多請關注php中文網其它相關文章!
PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號