Thinkphp3.2 Linux下缩略图生成失败
代码在本地运行正常,部署到Linux就不好使了。
前端代码:
<br /> <script type="text/javascript"><br /> $(function() {<br /> $("#file_upload").uploadify({<br /> height : 30,<br /> swf : '{$Think.const.SITE_URL}public/GoodsUploadify/uploadify.swf',<br /> uploader : '{:U("Goods/GoodsUploadify")}',<br /> width : 120,<br /> //允许上传的文件后缀<br /> 'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png',<br /> 'multi' : false, //是否支持多文件上传 <br /> 'simUploadLimit' : 1, //一次同步上传的文件数目<br /> 'sizeLimit' : 31457280, //设置单个文件大小限制<br /> 'queueSizeLimit' : 1, //队列中同时存在的文件个数限制<br /> //'buttonImage':'/public/uploadify_shop/upbutton.jpg',//浏览按钮的背景图片路径<br /> 'formData': { 'sessionid': '<?php echo session_id();?>'}, <br /> 'onUploadSuccess' : function(file, data, response) {<br /> var data = $.parseJSON(data);<br /> $('#images').attr('src','{$Think.const.SITE_URL}public/GoodsImages/'+data['url']);<br /> $('#original_img').val(data['url']);<br /> },<br /> });<br /> });<br /> </script><br />
php端代码:
<br />public function GoodsUploadify() {<br /> if (! empty ( $_FILES )) {<br /> if (isset ( $_POST ['sessionid'] )) {<br /> session_id ( $_POST ['sessionid'] );<br /> session_start (); // 注意此函数要在session_id之后<br /> }<br /> import ( 'Org.Net.UploadFile' );<br /> $upload = new \UploadFile ();<br /> $upload->maxSize = 3292200;<br /> $upload->allowExts = explode ( ',', 'jpg,gif,png,jpeg' );<br /> $upload->savePath = "./public/GoodsImages/";<br /> // 设置需要生成缩略图,仅对图像文件有效<br /> $upload->thumb = true;<br /> // 设置需要生成缩略图的文件后缀<br /> $upload->thumbPrefix = 'z_,s_'; // 生产2张缩略图<br /> // 设置引用图片类库包路径<br /> $upload->thumbMaxWidth = '520,225';<br /> // 设置缩略图最大高度<br /> $upload->thumbMaxHeight = '520,225';<br /> // 设置上传文件规则<br /> $upload->saveRule = 'uniqid';<br /> // 删除原图<br /> // $upload->thumbRemoveOrigin = true;<br /> $this->ajaxReturn ( 1, 'json' );<br /> if (! $upload->upload ()) { // 上传错误提示错误信息<br /> $this->ajaxReturn ( 2, 'json' );<br /> $this->ajaxReturn ($upload->getErrorMsg (), 0, 'json' );<br /> } else { // 上传成功 获取上传文件信息<br /> $this->ajaxReturn ( 3, 'json' );<br /> $info = $upload->getUploadFileInfo ();<br /> $temp_size = getimagesize ( "./public/GoodsImages/" . $info ['0'] ['savename'] );<br /> if ($temp_size [0] < 100 || $temp_size [1] < 100) { // 判断宽和高是否符合要求<br /> $this->ajaxReturn ( 0, '图片宽或高不得小于100px!', 0, 'json' );<br /> }<br /> $data ['picName'] = $info ['0'] ['savename'];<br /> $data ['status'] = 1;<br /> $data ['url'] = $data ['picName'];<br /> $data ['info'] = $info;<br /> $this->ajaxReturn ( $data, 'json' );<br /> }<br /> <br /> }<br /> }<br />
其中$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 ();

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.

Untuk melindungi permohonan dari serangan XSS yang berkaitan dengan sesi, langkah-langkah berikut diperlukan: 1. Tetapkan bendera httponly dan selamat untuk melindungi kuki sesi. 2. Kod eksport untuk semua input pengguna. 3. Melaksanakan Dasar Keselamatan Kandungan (CSP) untuk mengehadkan sumber skrip. Melalui dasar-dasar ini, serangan XSS yang berkaitan dengan sesi dapat dilindungi dengan berkesan dan data pengguna dapat dipastikan.

Kaedah untuk mengoptimumkan prestasi sesi PHP termasuk: 1. Mula sesi kelewatan, 2. Gunakan pangkalan data untuk menyimpan sesi, 3. Data sesi kompres, 4. Mengurus kitaran hayat sesi, dan 5. Melaksanakan perkongsian sesi. Strategi ini dapat meningkatkan kecekapan aplikasi dalam persekitaran konkurensi yang tinggi.

Thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata, setInseconds.1) it'sconfiguredinphp.iniorviaini_set (). 2) abalanceisneededtoavoidperformanceissuesandunexpectedlogouts.3) php'sgarbageCollectionisprobabilistic, influedbygc_probabi

Dalam PHP, anda boleh menggunakan fungsi session_name () untuk mengkonfigurasi nama sesi. Langkah -langkah tertentu adalah seperti berikut: 1. Gunakan fungsi session_name () untuk menetapkan nama sesi, seperti session_name ("my_session"). 2. Selepas menetapkan nama sesi, hubungi session_start () untuk memulakan sesi. Mengkonfigurasi nama sesi boleh mengelakkan konflik data sesi antara pelbagai aplikasi dan meningkatkan keselamatan, tetapi memberi perhatian kepada keunikan, keselamatan, panjang dan penetapan masa sesi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa