コードはローカルでは正常に実行されますが、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>
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' ); } } }
session_id(この関数はsession_id
}} sension_startを自動的に有効にしてください。自分で設定したものを繰り返します。
import ( 'Org.Net.UploadFile' );
$upload = new UploadFile ();
デバッグする前に、出力情報があるかどうかを確認します。
また、デバッグモードをオンにすると、エラーがあれば自動的にエラーが表示されます
ローカルで正常であれば、コードに問題がないことを意味します
Linux上で正常でない場合は、次の可能性があります:
1. ファイルが不完全です
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 ()) { // アップロード エラー プロンプト エラー メッセージ この行の前の出力が返されます。
ローカルで正常であれば、コードに問題がないことを意味します
4. PHP のバージョンの問題
1. ファイルが不完全であるはずはありません
2. サムネイルと元の画像のアップロードが共通のパスを共有していることは、元の画像をアップロードできることを意味します。パスは正しいです
3. php5.3.6 の場合、TP3.2 には 5.3 以上が必要です。そうでない場合は、早期にエラーが報告されます。 777 ウェブサイトとディレクトリを再帰的に実行しました。 以下はすべて 777 です。それ以外の場合、元の画像はアップロードされません
ランタイム ディレクトリをクリアして再試行してください。それは可能です
ランタイム ディレクトリをクリアして再試行してください、他に可能性はありません
無駄です、戻り値さえありません、おい。
サムネイルの生成に失敗した場合は、サムネイルのファイルパスと権限が正しいかどうかを確認してください。