接下来我将为你详细讲解"简单的PHP多图上传小程序代码"的完整攻略。
思路
我们需要完成一个简单的PHP记录多张图片的上传界面。其中我们需要做到以下几点:
- 上传的图片需要保存在文件夹中。
- 上传的图片需要做类型判断,只保存指定格式的图片。
- 上传的图片需要做大小判断,限制图片大小。
- 黏贴上传和拖拽上传需要支持。
实现步骤
1. 创建上传表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" class="file" multiple="true" />
<input type="submit" value="上传" />
</form>
2. 创建upload.php文件
<?php
$upload_dir = 'uploads/'; //上传文件的保存路径
$allowed_ext = array('jpg','jpeg','png','gif'); // 允许上传的图片格式
$max_size = 5 * 1024 * 1024; // 允许上传的最大文件大小,单位为字节
//检查上传文件是否存在错误
function check_file($file_name,$error) {
if($error != UPLOAD_ERR_OK) {
switch($error) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$err_msg = '上传文件大小不符';
break;
case UPLOAD_ERR_PARTIAL:
$err_msg = '上传文件不完整';
break;
case UPLOAD_ERR_NO_FILE:
$err_msg = '没有选择上传文件';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$err_msg = '上传目录不存在';
break;
case UPLOAD_ERR_CANT_WRITE:
$err_msg = '写入文件失败';
break;
case UPLOAD_ERR_EXTENSION:
$err_msg = '上传的文件类型不符合要求';
break;
default:
$err_msg = '未知错误';
break;
}
exit($err_msg); //输出错误并退出程序
}
//检查上传文件是否为合法的上传文件
if(!is_uploaded_file($file_name)) {
exit('非法上传文件'); //输出错误并退出程序
}
}
//上传文件处理函数
function upload_file($file) {
global $upload_dir, $allowed_ext, $max_size;
//获取上传文件的扩展名
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
//检查上传的文件是否为图片格式
if(!in_array($ext, $allowed_ext)) {
exit('上传的文件类型不符合要求'); //输出错误并退出程序
}
//检查上传的文件是否超过大小限制
if($file['size'] > $max_size) {
exit('上传文件大小超出限制'); //输出错误并退出程序
}
//重命名上传的文件
$new_file_name = date('YmdHis').mt_rand(100, 999).'.'.$ext;
//将上传的文件移动到指定的文件夹
if(move_uploaded_file($file['tmp_name'], $upload_dir.$new_file_name)) {
return true;
} else {
return false;
}
}
//遍历上传的文件信息并处理上传
foreach($_FILES['files']['name'] as $k => $v) {
if($_FILES['files']['error'][$k] == UPLOAD_ERR_OK) {
check_file($_FILES['files']['tmp_name'][$k], $_FILES['files']['error'][$k]);
//处理上传文件
if(upload_file($_FILES['files']['name'][$k])) {
echo $_FILES['files']['name'][$k].'上传成功<br>';
} else {
echo $_FILES['files']['name'][$k].'上传失败<br>';
}
}
}
?>
3. 创建文件夹并设置为可写
为了保存上传的照片,我们需要在我们的程序中新建一个文件夹,我们将根据需要创建称为uploads的文件夹。
在您的FTP客户端中,转到您的Web根目录并右键单击以创建一个新文件夹,将该文件夹改名为uncodep。然后右键单击uncodep文件夹以更改该文件夹的权限,确保该文件夹是可写的。
4. 确认PHP运行时的max_execution_time和max_input_time
如果您的PHP网站托管在共享服务器上,则无法更改该设置。但是,如果您有root访问权限,可以更改此设定。否则,您必须问您的主机技术人员更改。
总结
在我们的完整攻略中,我们完成了一个简单的PHP多图上传小程序代码的实现,并且对于每个步骤都做了详细的解释。
对于每一个需要记录多张图片的场合,我们都可以调整一下upload.php文件的路径,并且在HTML里加上上面提到过的代码块,使我们的页面有一个文件上传表单。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单的PHP多图上传小程序代码 - Python技术站