ThinkPHP 是一个流行的 PHP 开发框架,它提供了丰富的功能和组件,使得开发者可以快速构建 Web 应用程序。多图片上传是指用户可以通过表单一次性上传多张图片到服务器。
以下是一个简单的 ThinkPHP 多图片上传示例:
<!DOCTYPE html>
<html>
<head>
<title>多图片上传</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="images[]" multiple>
<input type="submit" value="上传">
</form>
</body>
</html>
<?php
namespace app\controller;
use think\Controller;
use think\Request;
class Upload extends Controller
{
public function index(Request $request)
{
if ($request->isPost()) {
$files = $request->file('images');
foreach ($files as $file) {
// 移动文件到指定目录
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
echo '文件上传成功:' . $info->getSaveName() . '<br>';
} else {
echo '文件上传失败:' . $file->getError() . '<br>';
}
}
}
}
}
原因:可能是文件大小超出限制、文件类型不被允许、服务器磁盘空间不足等。
解决方法:
php.ini
文件中的 upload_max_filesize
和 post_max_size
设置,确保它们足够大。原因:多个文件上传时,可能会生成相同的文件名。
解决方法:
move
方法的第二个参数自定义文件名,例如使用时间戳或 UUID。$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads', time() . '_' . $file->getFilename());
原因:上传的文件可能包含恶意代码。
解决方法:
通过以上步骤和解决方法,你可以实现一个安全、高效的多图片上传功能。
领取专属 10元无门槛券
手把手带您无忧上云