写一段php图片上传代码程序
时间: 2023-09-06 22:04:34 浏览: 112
### 回答1:
<?php
// Check if the form was submitted
if(isset($_POST['submit'])){
// Get the file information
$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileSize = $_FILES['file']['size'];
$fileErrorMsg = $_FILES['file']['error']; // Allow certain file types
$allowedExtensions = array("jpg", "png", "gif"); // Get the file extension
$ext = pathinfo($fileName, PATHINFO_EXTENSION); // Check if the file type is allowed
if(in_array($ext, $allowedExtensions)){
// Check if there is any error
if($fileErrorMsg == 0){
// Check if the file size is too large
if($fileSize < 20000000){
// Generate a unique name
$randomName = md5(uniqid(rand(), true));
$renamedFileName = $randomName . '.' . $ext; // Move the file to the upload folder
$uploadFolder = "./uploads";
$uploadPath = $uploadFolder . "/" . $renamedFileName; // Try to move the file
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadPath)){
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
} else {
echo "文件太大!";
}
} else {
echo "发生错误!";
}
} else {
echo "文件类型不允许!";
}
}
?>
### 回答2:
PHP图片上传是Web开发中常见的功能之一。下面是一个简单的PHP图片上传代码程序。
```php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$targetDir = "uploads/"; // 图片存储目录
$targetFile = $targetDir . basename($_FILES["image"]["name"]); // 获取上传文件的完整路径
// 检查文件是否为真实的图片
$check = getimagesize($_FILES["image"]["tmp_name"]);
if ($check !== false) {
// 允许上传的图片格式
$allowedTypes = array("jpg", "jpeg", "png");
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
if (in_array($imageFileType, $allowedTypes)) {
if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) {
echo "图片上传成功!";
} else {
echo "上传图片失败,请重试。";
}
} else {
echo "只允许上传JPG、JPEG和PNG格式的图片。";
}
} else {
echo "请选择一张有效的图片文件。";
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="上传">
</form>
```
以上代码首先判断请求的方法是否为POST,然后设置存储目录和目标文件完整路径。接着,使用`getimagesize`函数检查上传文件是否为真实的图片。然后,定义允许上传的图片格式,并将上传文件的类型转换为小写。如果上传文件的类型在允许上传的图片格式数组中,通过`move_uploaded_file`函数将文件从临时目录移动到存储目录,并返回上传成功的消息。否则,返回相应的错误消息。
最后,使用HTML表单提供一个文件选择框和上传按钮供用户选择和上传图片。用户点击上传按钮后,提交表单,触发POST请求,执行图片上传的PHP代码。
### 回答3:
下面是一个示例的PHP图片上传代码程序:
```php
<?php
if(isset($_POST['submit'])){
$file = $_FILES['image'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowedExtensions = array('jpg', 'jpeg', 'png');
if(in_array($fileActualExt, $allowedExtensions)){
if($fileError === 0){
if($fileSize < 500000){ // 限制文件大小为500KB
$newFileName = uniqid('', true) . "." . $fileActualExt;
$destination = "uploads/" . $newFileName;
move_uploaded_file($fileTmpName, $destination);
echo "文件上传成功!";
} else {
echo "文件太大,无法上传。";
}
} else {
echo "发生错误,文件上传失败。";
}
} else {
echo "不支持的文件类型。";
}
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image">
<button type="submit" name="submit">上传</button>
</form>
```
以上代码首先检查是否有通过 POST 请求提交文件,然后获取文件相关信息,包括文件名、临时文件路径、文件大小和错误代码。接下来,将文件名以点号(.)分割成数组,然后转换成小写来获取文件的真实扩展名。定义了允许上传的文件扩展名数组后,根据条件判断执行上传操作。如果上传文件的大小和类型符合要求,将文件移动到指定目录,并输出上传成功的消息。如果不符合要求,将输出相关错误信息。
在 HTML 表单中,设置了文件上传的 input 元素和提交按钮。将表单的适当属性设置为 POST 方法和设置 enctype 为 multipart/form-data,以便可以上传文件。在表单提交时,会将文件上传到服务器的目录中。
阅读全文