tp5怎么做图片上传

2025-10-03 12:45:32

1、假设表单代码如下:

<form action="/index/index/upload" enctype="multipart/form-data" method="post"> 

<input type="file" name="image" /> 

<input type="submit" value="上传" /> 

</form>

tp5怎么做图片上传

2、然后在控制器中添加如下的代码:

public function upload(){    // 获取表单上传文件 例如上传了001.jpg    $file = request()->file('image');        // 移动到框架应用根目录/public/uploads/ 目录下    $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');    if($info){        // 成功上传后 获取上传信息        // 输出 jpg        echo $info->getExtension();        // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg        echo $info->getSaveName();        // 输出 42a79759f284b767dfcb2a0197904287.jpg        echo $info->getFilename();    }else{        // 上传失败获取错误信息        echo $file->getError();    }}

tp5怎么做图片上传

3、多文件上传

如果你使用的是多文件上传表单,例如:

<form action="/index/index/upload" enctype="multipart/form-data" method="post"><input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="submit" value="上传" /> </form>

tp5怎么做图片上传

4、控制器代码可以改成:

public function upload(){    // 获取表单上传文件    $files = request()->file('image');    foreach($files as $file){        // 移动到框架应用根目录/public/uploads/ 目录下        $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');        if($info){            // 成功上传后 获取上传信息            // 输出 jpg            echo $info->getExtension();            // 输出 42a79759f284b767dfcb2a0197904287.jpg            echo $info->getFilename();        }else{            // 上传失败获取错误信息            echo $file->getError();        }        }}

tp5怎么做图片上传

5、上传验证

支持对上传文件的验证,包括文件大小、文件类型和后缀:

public function upload(){    // 获取表单上传文件 例如上传了001.jpg    $file = request()->file('image');    // 移动到框架应用根目录/public/uploads/ 目录下    $info = $file->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');    if($info){        // 成功上传后 获取上传信息        // 输出 jpg        echo $info->getExtension();        // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg        echo $info->getSaveName();        // 输出 42a79759f284b767dfcb2a0197904287.jpg        echo $info->getFilename();    }else{        // 上传失败获取错误信息        echo $file->getError();    }}

tp5怎么做图片上传

6、getSaveName方法返回的是图片的服务器文件地址,并不能直接用于图片的URL地址,尤其在windows平台上必须做转换才能正常显示图片。

如果上传文件验证不通过,则move方法返回false。

验证参数

说明

size上传文件的最大字节

ext文件后缀,多个用逗号分割或者数组

type文件MIME类型,多个用逗号分割或者数组

还有一个额外的自动验证规则是,如果上传的文件后缀是图像文件后缀,则会检查该文件是否是一个合法的图像文件。

tp5怎么做图片上传

7、上传规则

默认情况下,会在上传目录下面生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件,例如上面生成的文件名可能是:

/home/www/upload/20160510/42a79759f284b767dfcb2a0197904287.jpg

我们可以指定上传文件的命名规则,使用rule方法即可,例如:

// 获取表单上传文件 例如上传了001.jpg$file = request()->file('image');// 移动到服务器的上传目录 并且使用md5规则$file->rule('md5')->move('/home/www/upload/');

最终生成的文件名类似于:

/home/www/upload/72/ef580909368d824e899f77c7c98388.jpg

tp5怎么做图片上传

tp5怎么做图片上传

tp5怎么做图片上传

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:125
  • 阅读量:123
  • 阅读量:153
  • 阅读量:80
  • 阅读量:75
  • 猜你喜欢