• PHP UPLOAD 实现附件上传


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

    跨域上传图片; 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' => '']);
            }
        }
    

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


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

  • 相关阅读:
    查杀木马利器,clamav
    zabbix运行久了以后效率会变慢的原因分析
    oracle sqlplus
    3000价位电脑配置实践
    phpmyadmin 万能密码漏洞
    nginx 的防cc攻击
    减少tcp TIME_WAIT 的数量
    nginx平滑升级
    心太大
    CentOS5.2下安装mplayer
  • 原文地址:https://www.cnblogs.com/lovebing/p/16602331.html
Copyright © 2020-2023  润新知