2016/05/19 thinkphp 3.2.2 文件上传

Posted 一棵树2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016/05/19 thinkphp 3.2.2 文件上传相关的知识,希望对你有一定的参考价值。

显示效果:  多文件上传。  这里是两个文件一起上传

上传到文件夹的效果:

①aa为调用Home下common文件夹下的function.php  中的rname方法  实现的

②cc为调用与Home平级文件夹common下的common文件夹下的function.php

以上是放公共方法的地方   程序可以自动调用

 

③一瓶水.gif 的显示: 在linux操作系统下不会出现乱码   但在windows下会出现乱码

解决办法:找到核心目录  thinkphp下的library下的Upload下的local.class.php  取其83行代码

如下图:原本没有    iconv(\'utf-8\',\'gb312\',$filename)  加上之后就是下面的效果   解决上传文件名显示乱码的问题     文件显示正常  如:一瓶水

 

代码:

①控制器部分:UploadController.class.php    注意点 上传文件

empty($_FILES["photo"])  传来的值用  $_FILES 来接收 
 1 <?php 
 2 namespace Home\\Controller;
 3 use Think\\Controller;
 4 class UploadController extends Controller
 5     {
 6 
 7         public function Upload(){
 8             if (empty($_FILES["photo"])) {
 9                 $this->display();
10             }
11             else
12             {
13                 $config=array(
14                     \'maxSize\' => 3145728,
15                     \'rootPath\'=>\'./Public/\',
16                     \'savePath\' => \'Uploads\',
17                     //\'saveName\' => array(\'uniqid\',\'\'),//上传文件保存名称规则,字符串和数组形式  这是数组形式
18                     \'exts\'=>array(\'jpg\',\'gif\',\'png\',\'jpeg\'),
19 
20                     //\'autoSub\'=> true,
21                     //\'subName\'=> array(\'date\',\'Ymd\'),
22                     \'saveName\'=>\'\',//上传文件保存名称规则,字符串和数组形式  这是字符串形式 空字符串
23                     );
24                 
25                 $upload=new \\Think\\Upload($config);//实例化上传类
26                 $info=$upload->upload();
27                     if (!$info) {//上传错误提示错误信息
28                         $this->error($upload->getError());
29                     }
30                     else
31                     {  //上传成功
32                         //$this->success(\'上传成功!\');
33                         foreach ($info as $value) {
34                             echo $value[\'savepath\'].$value[\'savename\'];
35                         }
36                     }
37 
38                     };
39                 }
40 
41 
42             }
43 
44  ?>

 

②模板部分

Upload.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>上传下载</title>
 6 </head>
 7 <body>
 8     <form action="__SELF__" enctype="multipart/form-data" method="post"> 
 9         <input type="file" name="photo"></input>
10         <input type="file" name="photo1"></input>
11           <input type="submit" value="上传"></input>
12     </form>
13 </body>
14 </html>

 

以上是关于2016/05/19 thinkphp 3.2.2 文件上传的主要内容,如果未能解决你的问题,请参考以下文章

将PHPMailer整合到ThinkPHP 3.2 中实现SMTP发送邮件

ThinkPhp 3.2 自动验证

Thinkphp 3.2中字符串截取

Thinkphp 3.2使用Redis

thinkphp 3.2之分页

ThinkPHP 3.2 框架