php-tp5文件上传

Posted 来自php星球的丸子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php-tp5文件上传相关的知识,希望对你有一定的参考价值。

文件上传没有上传上会出现的问题

1.没有写enctype="multipart/form-data"

2.名字是type=‘file‘ 的name  $file = request()->file(‘filename‘);

3.我总忽略的一点 文件的大小是否超过了php.ini upload_max_filesize的最大的大小 一般默认是2M  post_max_size post方法的最大大小

4.有一些人会遇见单双引号的问题 request()->file(‘filename‘); 里面要双引  应该是用了中文的空格 

 

 

tp5文件上传限制大小格式的写法

        

 

public function handle($img = ‘files‘)
{

    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file($img);
    // 移动到框架应用根目录/public/uploads/ 目录下

    if ($file) {
        $new_file =  ‘uploads‘ . ‘/‘ . USER_ID . ‘/‘ . date(‘Ym‘) . ‘/‘ . date(‘d‘) . ‘/‘;
        //return $new_file;
        $bef_info = $file->getInfo();

        if (!file_exists(ROOT_PATH .‘public‘ . ‘/‘ . $new_file)) {
            //检查是否有该文件夹,如果没有就创建,并给予最高权限
            mkdir(ROOT_PATH .‘public‘ . ‘/‘ . $new_file, 0777, true);
        }

        $validata = [‘size‘ => 1024000, ‘ext‘ => ‘jpg,png,gif,txt,doc,hlp,wps,rtf,html,pdf,docx,rar,zip,arj,gz,z,waz,aif,au,mp3,ram,wma,mmf,amr,aac,flac,xlsx‘];
        $info = $file->rule(‘uniqid‘)->validate($validata)->move(ROOT_PATH . $new_file);

        if ($info) {
            // 成功上传后 获取上传信息

            $file_info = array(
                "image-type" => $info->getExtension(),
                "image-frames" => 1,
                "image-height" => 377,
                "sign" => "65096b4ff9d0a1c3b41c343b8fa27605",
                "code" => 200,
                "file_size" => 75761,
                "image-width" => 547,
                "url" => $new_file . $info->getSaveName(),
                "time" => 1508835353,
                "message" => "ok",
                "mimetype" => "image/jpeg",
                "name" => $info->getFilename(),
                "path" => $new_file,
                ‘bet_info‘ => $bef_info

            );

            $data = array(
                "type" => $info->getExtension(),
                //"image-frames"=>1,
                //"image-height"=>377,
                //"image-width"=>547,
                //"sign"=>"65096b4ff9d0a1c3b41c343b8fa27605",
                //"code"=>200,
                "size" => $bef_info["size"],
                "url" => $new_file . $info->getSaveName(),
                //"time"=>1508835353,
                //"message"=>"ok",
                "savename" => $info->getSaveName(),
                "name" => $bef_info["name"],
                "mimetype" => $bef_info["type"],
            );
            //print_r($data);


            // Db::connect(DB_CONFIG)->table(‘rrs_upload_files‘)->insert($data);


            return [‘code‘ => 0, ‘file_info‘ => $file_info,‘data‘=>$data];

            // 输出 jpg
            //echo $info->getExtension()." ";
            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            //echo $info->getSaveName()." ";
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            //echo $info->getFilename()." ";
        } else {
            // 上传失败获取错误信息
            return [‘code‘ => 1, ‘data‘ => $file->getError()];
        }
    }

}

 













































































以上是关于php-tp5文件上传的主要内容,如果未能解决你的问题,请参考以下文章

5月23日 文件上传

每 5 分钟上传到 GCS 的文本文件如何将它们上传到 BigQuery?

Laravel 5.0 文件上传验证

Html 5文件上传[关闭]

如何修复“文件上传失败。”使用任何图像上传验证时出错 - Laravel 5.7

Laravel 5 文件上传验证