thinkphp怎么上传图片

第一步:配置必要参数

在config.php配置文件中,需要先设置上传文件路径、限制图片大小和文件类型等参数。具体配置如下:

return [    'upload_path' => './uploads/', //上传文件路径    'img_max_size' => 2 * 1024 * 1024, //最大上传图片大小    'img_allow_types' => 'jpg,png,gif,jpeg', //允许上传的文件类型];

第二步:编写图片上传代码

在ThinkPHP中,我们可以通过使用上传类来实现图片的上传功能。先将上传类导入:

立即学习“PHP免费学习笔记(深入)”;

Cutout老照片上色 Cutout老照片上色

Cutout.Pro推出的黑白图片上色

Cutout老照片上色 20 查看详情 Cutout老照片上色

use thinkfacadeRequest;use thinkfacadeFilesystem;class ImageUpload{    public function upload()    {        $img_file = Request::file('img'); //获取上传的图片文件        $img_path = config('upload_path'); //获取上传路径        $max_size = config('img_max_size'); //获取最大文件尺寸        $allow_types = config('img_allow_types'); //获取允许上传的类型        //判断上传文件是否有效、大小是否符合、类型是否正确        if (!$img_file->isValid()) {            return ['code' => 1, 'msg' => '上传图片无效'];        }        if ($img_file->getSize() > $max_size) {            return ['code' => 2, 'msg' => '上传图片大小超过限制'];        }        if (!in_array($img_file->extension(), explode(',', $allow_types))) {            return ['code' => 3, 'msg' => '上传图片类型不支持'];        }        //上传文件        $file_info = $img_file->move($img_path);        if ($file_info === false) {            return ['code' => 4, 'msg' => '上传图片失败,请重试'];        }        //返回上传成功信息        $file_name = $file_info->getSaveName();        $file_url = Filesystem::getDiskConfig('public', ['url' => '/'])->getVisibility()->url($img_path . $file_name);        return ['code' => 0, 'msg' => '上传图片成功', 'url' => $file_url];    }}

第三步:调用图片上传代码

接下来,我们可以在控制器中调用图片上传代码,并获取上传结果:

public function uploadImage(){    $result = (new ImageUpload())->upload();    echo json_encode($result);}

最后,我们只需在前端页面中使用ajax将图片文件上传至服务端即可:

        $(document).on('submit', '#image-form', function (event) {    event.preventDefault();     var formData = new FormData(document.getElementById('image-form'));    $.ajax({        url: '/uploadImage',        type: 'post',        data: formData,        contentType: false,        processData: false,        dataType: 'json',        success: function (res) {            //处理上传结果        },        error: function (xhr, textStatus, errorThrown) {            console.log(errorThrown);        }    });});

以上就是thinkphp怎么上传图片的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/600870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 20:28:55
下一篇 2025年11月10日 20:29:54

相关推荐

发表回复

登录后才能评论
关注微信