search
HomeBackend DevelopmentPHP TutorialThinkphp3.2 Linux下缩略图生成失败
Thinkphp3.2 Linux下缩略图生成失败Jun 23, 2016 pm 01:52 PM
linuxthinkphp3.2failgeneratethumbnail

代码在本地运行正常,部署到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 目录再试,应该没有其他可能了


没用呢,连个返回值都木有,哎。

既然原图成功,那应该是处理成缩略图的时候出错了。
你应该到具体生成缩略图的代码里调试,看看哪一步出错了。

缩略图如果生成失败,检查缩略图的文件路径和权限是否正确。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Win11 23H2更新遇到问题该怎么解决?Win11 23H2更新遇到问题该怎么解决?Dec 25, 2023 pm 12:18 PM

用户一般会通过升级电脑的系统版本用来修复一些问题,如果用户使用win11系统更新到最新版本的23H2失败了,可以有三种方法来解决您的问题。Win11更新23H2失败了怎么办方法一:绕开TPM1、点击“文件资源管理器-查看”,勾选一下下拉菜单中的“隐藏的项目”的选项。2、转到并删除“C:\$WINDOWS.~BT\Sources\Panther-Appraiser_Data.ini”。3、然后在该位置重新建一个同名的文件夹,然后点击将“隐藏项目”选项取消。4、重新更新一下系统,最后点击到“Wind

为什么localstorage无法成功保存数据?为什么localstorage无法成功保存数据?Jan 03, 2024 pm 01:41 PM

存储数据到localstorage为何总是失败?需要具体代码示例在前端开发中,我们经常需要将数据存储在浏览器端,以便提高用户体验和方便之后的数据访问。Localstorage是HTML5提供的一项用于客户端存储数据的技术,它提供了一种简单的方法来存储数据,并且可以在页面刷新或关闭后保持数据的持久化。然而,当我们使用localstorage进行数据存储时,有时

如何解决pip更新失败的问题?如何解决pip更新失败的问题?Jan 27, 2024 am 08:32 AM

遇到pip更新失败怎么办?最近,在使用Python开发过程中,我遇到了一些关于pip更新失败的问题。在进行开发时,我们常常需要使用pip来安装、升级和移除Python的第三方库。而pip的更新失败会严重影响到我们的开发工作。本文将会探讨一些常见的pip更新失败的情况,并提供解决方法,希望能帮助到遇到类似问题的开发者。首先,当我们执行pipinstall-

PHPStudy安装问题大揭秘:PHP 5.5版本失败怎么办?PHPStudy安装问题大揭秘:PHP 5.5版本失败怎么办?Feb 29, 2024 am 11:54 AM

PHPStudy是一个集成了PHP、Apache、MySQL的开发环境工具,为开发者提供了一个便捷的搭建本地服务器环境的方式。然而,安装过程中可能会遇到一些问题,其中之一就是在安装PHP5.5版本时失败的情况。本文将探讨PHPStudy安装PHP5.5版本失败的原因和解决方法,并提供具体的代码示例帮助读者解决这一问题。PHPStudy安装PHP5.5版

如何修复win10更新错误代码0x800f0982如何修复win10更新错误代码0x800f0982Jan 14, 2024 pm 05:54 PM

win10系统已经慢慢开始普及于市场但使用的时候还是有着很多的bug,最近很多小伙伴就遇到了更新失败0x800f0982的问题,下面就给大家带来详细的解决方法。win10更新失败无法开机:方法一、系统更新异常删除异常软件1、卸载并重新安装任何最近添加的语言包。2、选择“检查更新”并安装更新。方法二:更新异常重置电脑1、点击开始打开“设置”选择“更新和安全”。2、点击左侧“恢复”在“重置此电脑”恢复选项下选择“开始”。3、选择“保留我的文件”。

解决win10系统升级失败无法启动的方法解决win10系统升级失败无法启动的方法Jan 13, 2024 pm 02:45 PM

win10系统是一款非常优秀的智能系统,经常使用电脑的小伙伴们都应该知道win10系统是一款更新补丁非常频繁的系统,近来有很多的小伙伴们反应自己在更新的时候出现了失败的现象,今天小编就为大家带来了win10系统升级失败开不了机的解决办法一起来看一下吧。win10更新失败的解决办法:1、首先同时按下键盘快捷键Win+R,打开运行窗口输入命令services.msc,然后点击确定按钮,打开服务窗口。2、在服务窗口列表找到“WindowsUpdate”,双击打开。2、然后把服务状态点击“停止”,确定修

为什么Prim和Kruskal的最小生成树算法在有向图中失败?为什么Prim和Kruskal的最小生成树算法在有向图中失败?Sep 02, 2023 pm 05:29 PM

Prim的方法和Kruskal的算法是在无向图中定位MST(最小生成树)的两种常见方法。然而,这些技术不能为有向图生成正确的MST。这是因为有向图不适合Prim和Kruskal算法所使用的基本假设和方法。Prim算法首先,有Prim算法,它涉及以贪婪的方式向扩展的最小生成树添加边,直到所有顶点都被覆盖。MST内部的顶点通过具有最低权重的边与MST外部的顶点相连。由于无向图中的所有边都可以以任意方向移动,因此从MST到外部顶点的最短路径很容易找到。然而,在有向图中,边总是指向一个方向,可能没有直线

win7升级至win10失败后,如何解决?win7升级至win10失败后,如何解决?Dec 26, 2023 pm 07:49 PM

如果我们使用的操作系统是win7的话,对于在升级的时候有的小伙伴们可能就会出现win7升win10失败的情况。小编觉得我们可以尝试重新升级看下能不能解决。详细内容就来看下小编是怎么做的吧~win7升win10失败怎么办方法一:1.建议下载个驱动人生先评估下你电脑是否可以升级到Win10,2.然后升级后用驱动人生检测下有没有驱动异常这些,然后一键修复。方法二:1.删除C:\Windows\SoftwareDistribution\Download下的所有文件。2.win+R运行“wuauclt.e

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),