很多朋友遇到这样一个问题,图片上传生成缩略图,很多人在本机(win)测试成功,上传到linux 服务器后错误。
我也遇到同样的问题。网上一查,有无数的人说是服务器临时文件目录权限问题。
几经思考后,发现并非如此。
其根本的原因是,保存到变量的信息是之前的,之后又move移动到了自己指定的目录下,同时临时文件已经不存在。所以再生成缩略图的时候,需要open的,文件地址应该是自己定义的目录+文件名。然而很多实例文档中,还是使用的move 之前的信息。
又加之在win服务器下,move后,指定目录已生成了文件,同时临时文件未被删除。所以能用move之前的信息生成缩略图。
希望不多的言语能帮助遇到同样问题的你。
下面在通过实例代码给大家介绍ThinkPHP5.0 图片上传生成缩略图的方法。
代码如下所示:
<"", $width="", $height="") { // 打开图片的相对路径 $imgpath = config('img_path'); // 绝对路径 $imgRootPath = config('imgRootPath'); $storeId = '自定义'; $merchantId = '自定义'; $old_filename = $storeId . $merchantId . time(); $filename = $storeId . $merchantId . time() . mt_rand(1000, 9999); $type = Goods::upload($whereName, $old_filename); if($type) { $savepath = $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type; $thumbfile = $filename . '.' . $type; $thumbName = $imgpath . '/' . $whereName . '/' . $thumbfile; $image = \think\Image::open($imgpath . '/'. $whereName .'/' . $old_filename . '.' . $type); $image->thumb($width, $height, \think\Image::THUMB_FIXED)->save($thumbName); $data = [ 'access_url' => $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type, 'filename' => $thumbfile, ]; return $data; } } }
调用:
class Goods { public function upload_sku() { $whereName = 'goods/sku'; $width = 750; $height = 750; $data = Tools::upload_goods_img($whereName,$width, $height); return returnJson(1, '上传成功', $data);; } }
PS:下面在看一段代码tp5中上传图片方法,并生成相应缩略图的方法
//接收上传文件的name $file = $this->_req->file("upload_head_image"); //将上传的文件移动到public/uploads/user $info = $file->validate(['size'=>5242880,'ext'=>'jpg,jpeg,png'])->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'user'); if($info){ $pic = new \app\home\model\User(); $pic_url = $pic->thumbImage($file,$info); $user['portrait'] = 'uploads/user/'.$pic_url; //print_r($pic_url);exit(); } ///model中代码如下 /** * [生成用户头像缩略图,180、50] * @param [type] $file [获取上传文件$_FILE] * @param [type] $pic [上传文件的路径] * @return [type] [返回处理后的文件路径] */ public function thumbImage($file,$pic){ $image = \think\Image::open($file); $getSaveName = str_replace('\\','/',$pic->getSaveName()); $portrait_thumbnail_180= 'uploads/user/'.str_replace($pic->getFilename(),'180_'.$pic->getFilename(),$getSaveName); $image->thumb(180,180,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_180,null,100,true); $portrait_thumbnail_80 = 'uploads/user/'.str_replace($pic->getFilename(),'80_'.$pic->getFilename(),$getSaveName); $image->thumb(80,80,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_80,null,100,true); $portrait_thumbnail_50 = 'uploads/user/'.str_replace($pic->getFilename(),'50_'.$pic->getFilename(),$getSaveName); $image->thumb(50,50,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_50,null,100,true); if ($image) { return $getSaveName; } }
总结
以上所述是小编给大家介绍的ThinkPHP5.0 图片上传生成缩略图实例代码说明,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]