Thinkphp3.2 Linux下缩略图生成失败
代码在本地运行正常,部署到Linux就不好使了。
前端代码:
<script type="text/javascript"> $(function() { $("#file_upload").uploadify({ height : 30, swf : '{$Think.const.SITE_URL}public/GoodsUploadify/uploadify.swf', uploader : '{:U("Goods/GoodsUploadify")}', width : 120, //允许上传的文件后缀 'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png', 'multi' : false, //是否支持多文件上传 'simUploadLimit' : 1, //一次同步上传的文件数目 'sizeLimit' : 31457280, //设置单个文件大小限制 'queueSizeLimit' : 1, //队列中同时存在的文件个数限制 //'buttonImage':'/public/uploadify_shop/upbutton.jpg',//浏览按钮的背景图片路径 'formData': { 'sessionid': '<?php echo session_id();?>'}, 'onUploadSuccess' : function(file, data, response) { var data = $.parseJSON(data); $('#images').attr('src','{$Think.const.SITE_URL}public/GoodsImages/'+data['url']); $('#original_img').val(data['url']); }, }); }); </script>
php端代码:
public function GoodsUploadify() { if (! empty ( $_FILES )) { if (isset ( $_POST ['sessionid'] )) { session_id ( $_POST ['sessionid'] ); session_start (); // 注意此函数要在session_id之后 } import ( 'Org.Net.UploadFile' ); $upload = new \UploadFile (); $upload->maxSize = 3292200; $upload->allowExts = explode ( ',', 'jpg,gif,png,jpeg' ); $upload->savePath = "./public/GoodsImages/"; // 设置需要生成缩略图,仅对图像文件有效 $upload->thumb = true; // 设置需要生成缩略图的文件后缀 $upload->thumbPrefix = 'z_,s_'; // 生产2张缩略图 // 设置引用图片类库包路径 $upload->thumbMaxWidth = '520,225'; // 设置缩略图最大高度 $upload->thumbMaxHeight = '520,225'; // 设置上传文件规则 $upload->saveRule = 'uniqid'; // 删除原图 // $upload->thumbRemoveOrigin = true; $this->ajaxReturn ( 1, 'json' ); if (! $upload->upload ()) { // 上传错误提示错误信息 $this->ajaxReturn ( 2, 'json' ); $this->ajaxReturn ($upload->getErrorMsg (), 0, 'json' ); } else { // 上传成功 获取上传文件信息 $this->ajaxReturn ( 3, 'json' ); $info = $upload->getUploadFileInfo (); $temp_size = getimagesize ( "./public/GoodsImages/" . $info ['0'] ['savename'] ); if ($temp_size [0] < 100 || $temp_size [1] < 100) { // 判断宽和高是否符合要求 $this->ajaxReturn ( 0, '图片宽或高不得小于100px!', 0, 'json' ); } $data ['picName'] = $info ['0'] ['savename']; $data ['status'] = 1; $data ['url'] = $data ['picName']; $data ['info'] = $info; $this->ajaxReturn ( $data, 'json' ); } } }
其中$this->ajaxReturn ( (1/2/3), 'json' );为调试代码
可以返回1,当1注销时2和3都不返回,1,2,3都注销时,什么都不返回,
缩略图和原图都是一个路径,原图上成功说明缩略图路径没错。所以我就搞不懂了。
现在问题就是,缩略图生成失败,没有返回值,求大神帮忙,本来想把上传插件源码传上来参考的,没有上传附件功能啊,放这个框里 又太长 = =
回复讨论(解决方案)
if (isset ( $_POST ['sessionid'] )) {
session_id ( $_POST ['sessionid'] );
session_start (); // 注意此函数要在session_id之后
}
THINKPHP 自动启用 session_start ,你自己设置的,重复了。
import ( 'Org.Net.UploadFile' );
$upload = new \UploadFile ();
你在以上之前调试,echo "ddddddddddd";exit;
看看能否有输出信息。
还有,开启调试模式,有错误,会自动显示错误
本地正常,表示代码没有问题
Linux下不正常,可能是:
1、文件不全
2、路径和文件名没注意大小写
3、权限问题
4、php版本问题
if (isset ( $_POST ['sessionid'] )) {
session_id ( $_POST ['sessionid'] );
session_start (); // 注意此函数要在session_id之后
}
THINKPHP 自动启用 session_start ,你自己设置的,重复了。
import ( 'Org.Net.UploadFile' );
$upload = new \UploadFile ();
你在以上之前调试,echo "ddddddddddd";exit;
看看能否有输出信息。
还有,开启调试模式,有错误,会自动显示错误
session_start 注销后,还是没返回值。 dddd能返回,
看我贴的代码:if (! $upload->upload ()) { // 上传错误提示错误信息 这行之前 输出都是可以返回的。
本地正常,表示代码没有问题
Linux下不正常,可能是:
1、文件不全
2、路径和文件名没注意大小写
3、权限问题
4、php版本问题
1、文件不全应该不会吧,
2、缩略图和原图上传公用一个路径,原图能上传,说明路径没错
3、php5.3.6的,TP3.2只要5.3以上就可以,不然早报错了
4、我已经把网站的跟目录递归777了,下面所有的都是777 都看过了上传的那个文件夹也是777 不然原图也传不上啊
清空 Runtime 目录再试,应该没有其他可能了
清空 Runtime 目录再试,应该没有其他可能了
我觉得另蹊跷,先清完缓存,再回
清空 Runtime 目录再试,应该没有其他可能了
没用呢,连个返回值都木有,哎。
既然原图成功,那应该是处理成缩略图的时候出错了。
你应该到具体生成缩略图的代码里调试,看看哪一步出错了。
缩略图如果生成失败,检查缩略图的文件路径和权限是否正确。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DeepSeek 是一款强大的智能搜索与分析工具,提供网页版和官网两种访问方式。网页版便捷高效,免安装即可使用;官网则提供全面产品信息、下载资源和支持服务。无论个人还是企业用户,都可以通过 DeepSeek 轻松获取和分析海量数据,提升工作效率、辅助决策和促进创新。

DeepSeek的安装方法有多种,包括:从源码编译(适用于经验丰富的开发者)使用预编译包(适用于Windows用户)使用Docker容器(最便捷,无需担心兼容性)无论选择哪种方法,请仔细阅读官方文档并充分准备,避免不必要的麻烦。

如何下载BitPie比特派钱包App?步骤如下:在AppStore(苹果设备)或GooglePlay商店(安卓设备)中搜索“BitPie比特派钱包”。点击“获取”或“安装”按钮下载应用程序。对于电脑版,访问BitPie比特派钱包官方网站并下载相应软件包。

BITGet 是一款加密货币交易所,提供各种交易服务,包括现货交易、合约交易和衍生品。该交易所成立于 2018 年,总部位于新加坡,致力于为用户提供安全可靠的交易平台。BITGet 提供多种交易对,包括 BTC/USDT、ETH/USDT 和 XRP/USDT。此外,该交易所还在安全性和流动性方面享有盛誉,并提供多种功能,如高级订单类型、杠杆交易和 24/7 全天候客户支持。

欧易 OKX,全球领先的数字资产交易所,现推出官方安装包,提供安全便捷的交易体验。欧易 OKX 安装包无需通过浏览器访问,可直接在设备上安装独立应用程序,为用户打造稳定高效的交易平台。安装过程简便易懂,用户只需下载最新版本安装包,按照提示一步步操作即可完成安装。

Gate.io是一款受欢迎的加密货币交易所,用户可通过下载其安装包并安装在设备上使用。获取安装包步骤如下:访问Gate.io官方网站,点击“下载”,选择对应操作系统(Windows、Mac或Linux),将安装包下载至计算机。安装过程中建议暂时禁用杀毒软件或防火墙,确保安装顺利。完成后,用户需创建Gate.io账户以开始使用。

欧易,又称OKX,是一个全球领先的加密货币交易平台。文章提供了欧易官方安装包的下载入口,方便用户在不同设备上安装欧易客户端。该安装包支持 Windows、Mac、Android 和 iOS 系统,用户可根据自己的设备类型选择相应版本下载。安装完成后,用户即可注册或登录欧易账户,开始交易加密货币和享受平台提供的其他服务。

Gate.io 是一款备受赞誉的加密货币交易平台,以其广泛的代币选择、低廉的交易费用和用户友好的界面而闻名。凭借其先进的安全功能和优秀的客户服务,Gate.io 为交易者提供一个可靠且便利的加密货币交易环境。想要加入 Gate.io 的行列,欢迎点击提供的链接下载官方注册安装包,开启您的加密货币交易之旅。
