首页 > 编程语言 >PHP UPLOAD 实现附件上传

PHP UPLOAD 实现附件上传

时间:2022-08-19 16:11:50浏览次数:91  
标签:info name UPLOAD file path PHP 上传 size

很早时候写的一些 上传功能,现在都换成 对象存储 了,基本不用原生的了;

跨域上传图片; php 附件上传

备份一下:

<?
    /**
     * 上传压缩文件
     */
    public function uploadzip()
    {
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('file');
        $path = 'uploads';
        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->validate(['size' => 20 * 1024 * 1024, 'ext' => 'zip,rar,7z'])->move($path);
        if ($info) {
            $name = $info->getInfo('name');
            $size = $info->getInfo('size');
            $ext = $info->getExtension();
            $fileurl = $path . '/' . $info->getSaveName();
            $data = [
                'content' => $fileurl,
                'name' => $name,
                'size' => $size,
                'ext' => $ext,
            ];
            $this->success('ok', '', $data);
        }
    }
    //删除附件
    public function deletezip()
    {
        $content = Request::post('content', '');
        $path = Env::get('root_path') . 'public/' . $content;
        if (file_exists($path)) {
            unlink($path);
            $this->success('操作成功');
        } else {
            $this->error('操作失败' . $path);
        }
    }

    /**
     * 跨域上传图片
     */
    public function cros_img()
    {
        // header('Access-Control-Allow-Origin: *'); 无限制
        // header('Access-Control-Allow-Origin: http://XXX.XXX.cn');
        // 允许跨域的origin白名单, 为空则允许所有origin跨域
        $allowOrigin = config('app.allow_origin');
        // 跨域访问的时候才会存在该字段
        $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
        // 有配置白名单且当前origin在白名单
        if (in_array($origin, $allowOrigin)) {
            header("Access-Control-Allow-Origin:" . $origin);
        }
        header('Access-Control-Allow-Methods: GET, POST');
        header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization');
        header('Access-Control-Allow-Credentials: true');
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('file');
        $path = 'uploads';
        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->validate(['size' => 5 * 1024 * 1024, 'ext' => 'jpeg,jpg,png,gif,bmp'])->move($path);
        if ($info) {
            // 成功上传后 获取上传信息
            // 输出 jpg
            $ext = $info->getExtension();
            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            $fileurl = $path . '/' . $info->getSaveName();
            $thumb  = getImgThumbUrl($fileurl);//生成缩略图
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            // echo $info->getFilename().'<br/>';
            $name = $info->getInfo('name');
            $size = $info->getInfo('size');
            $data = [
                'content' => $fileurl,
                'thumb' => $thumb?$thumb:'',
                'name' => $name,
                'size' => $size,
            ];
            return json(['code' => 1, 'msg' => '上传成功!', 'data' => $data]);
        } else {
            // 上传失败获取错误信息
            return json(['code' => 0, 'msg' => '上传失败!' . $file->getError(), 'data' => '']);
        }
    }

文章来源:刘俊涛的博客 欢迎关注公众号、留言、评论,一起学习。


若有帮助到您,欢迎捐赠支持,您的支持是对我坚持最好的肯定(_)

标签:info,name,UPLOAD,file,path,PHP,上传,size
From: https://www.cnblogs.com/lovebing/p/16602331.html

相关文章