ホームページ > バックエンド開発 > PHPチュートリアル > Thinkphp3.2 Linux でサムネイルの生成が失敗する

Thinkphp3.2 Linux でサムネイルの生成が失敗する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 13:52:56
オリジナル
876 人が閲覧しました

コードはローカルでは正常に実行されますが、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 がすべてログアウトされた場合は、何も返されません
元の画像の成功は、サムネイルのパスは正しいです。だから分かりません。
現在の問題は、サムネイルの生成に失敗し、戻り値がないことです。助けてください。元々はアップロード プラグインのソース コードをアップロードしたかったのですが、添付ファイルのアップロード機能がありません。このboxに入れます==


返信ディスカッション(ソリューション)

if(isset($ _post ['sessionid'])){

session_id(この関数はsession_id
}} sension_startを自動的に有効にしてください。自分で設定したものを繰り返します。

import ( 'Org.Net.UploadFile' );
$upload = new UploadFile ();

デバッグする前に、出力情報があるかどうかを確認します。
また、デバッグモードをオンにすると、エラーがあれば自動的にエラーが表示されます

ローカルで正常であれば、コードに問題がないことを意味します
Linux上で正常でない場合は、次の可能性があります:
1. ファイルが不完全です

2. パスとファイル名の大文字と小文字の区別が考慮されていません

3. 権限の問題
4. PHP のバージョンの問題


if (isset ( $_POST ['sessionid'] )) {
session_start (); // この関数は session_id の後にある必要があることに注意してください。

}

THINKPHP は、自分で設定した session_start を自動的に繰り返し有効にします。


import ( 'Org.Net.UploadFile' );
$upload = new UploadFile ();

デバッグする前に、出力情報があるかどうかを確認します。
また、デバッグモードをオンにすると、エラーがあれば自動的にエラーが表示されます

session_start ログアウト後も戻り値はありません。 dddd を返すことができます。
投稿したコードを見てください: if (! $upload->upload ()) { // アップロード エラー プロンプト エラー メッセージ この行の前の出力が返されます。


ローカルで正常であれば、コードに問題がないことを意味します

Linux で正常でない場合は、次の可能性があります:
1. ファイルが不完全
2. パスとファイル名は大文字と小文字が区別されません 3. 権限の問題

4. PHP のバージョンの問題


1. ファイルが不完全であるはずはありません
2. サムネイルと元の画像のアップロードが共通のパスを共有していることは、元の画像をアップロードできることを意味します。パスは正しいです
3. php5.3.6 の場合、TP3.2 には 5.3 以上が必要です。そうでない場合は、早期にエラーが報告されます。 777 ウェブサイトとディレクトリを再帰的に実行しました。 以下はすべて 777 です。それ以外の場合、元の画像はアップロードされません

ランタイム ディレクトリをクリアして再試行してください。それは可能です



ランタイム ディレクトリをクリアして再試行してください。他に可能性はありません

何かが間違っていると思います、最初にキャッシュをクリアしてから元に戻ります

ランタイム ディレクトリをクリアして再試行してください、他に可能性はありません

無駄です、戻り値さえありません、おい。


元の画像は成功しているので、サムネイルに加工するときにエラーが発生するはずです。 具体的にサムネイルを生成するコードをデバッグして、どのステップが間違っているかを確認する必要があります。

サムネイルの生成に失敗した場合は、サムネイルのファイルパスと権限が正しいかどうかを確認してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート