Table of Contents
回复讨论(解决方案)
Home Backend Development PHP Tutorial Thinkphp3.2 Linux下缩略图生成失败

Thinkphp3.2 Linux下缩略图生成失败

Jun 23, 2016 pm 01:52 PM
linux thinkphp3.2 fail generate thumbnail

代码在本地运行正常,部署到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>
Copy after login


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' );			}					}	}
Copy after login


其中$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 of this Website
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

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1671
14
PHP Tutorial
1276
29
C# Tutorial
1256
24
Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode Previous Next Shortcut Key vscode Previous Next Shortcut Key Apr 15, 2025 pm 10:51 PM

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

How to run sublime after writing the code How to run sublime after writing the code Apr 16, 2025 am 08:51 AM

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

What is the main purpose of Linux? What is the main purpose of Linux? Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

laravel installation code laravel installation code Apr 18, 2025 pm 12:30 PM

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

git software installation git software installation Apr 17, 2025 am 11:57 AM

Installing Git software includes the following steps: Download the installation package and run the installation package to verify the installation configuration Git installation Git Bash (Windows only)

See all articles