Heim >Backend-Entwicklung >PHP-Tutorial >Beispiel für das Hochladen einer ThinkPHP-Datei

Beispiel für das Hochladen einer ThinkPHP-Datei

不言
不言Original
2018-06-06 14:17:062098Durchsuche

In diesem Artikel wird hauptsächlich die Implementierungsmethode des ThinkPHP-Datei-Uploads vorgestellt, eine sehr häufige Fähigkeit in der ThinkPHP-Programmentwicklung. Freunde, die sie benötigen, können darauf zurückgreifen.

Das Hochladen von Dateien ist eine häufige Funktion in vielen PHP-Programmen Projekte , heute wird in diesem Artikel ein vollständiges Beispiel für die Implementierung der ThinkPHP-Datei-Upload-Funktion vorgestellt. Die spezifische Methode lautet wie folgt:

1. Aktionsteil:

Der Seitencode von FileAction.class.php lautet wie folgt:

<?php
class FileAction extends Action{
  function index(){
    $file=M(&#39;file&#39;);
    $list=$file->select();
    $this->assign(&#39;filelist&#39;,$list);
    $this->display();  
  }  
  function upload(){
    //文件上传地址提交给他,并且上传完成之后返回一个信息,让其写入数据库  
    if(empty($_FILES)){
      $this->error(&#39;必须选择上传文件&#39;);  
    }else{
      $a=$this->up();
      if(isset($a)){
        //写入数据库的自定义c方法
        if($this->c($a)){
          $this->success(&#39;上传成功&#39;);  
        }
        else{
          $this->error(&#39;写入数据库失败&#39;);  
        }
      }else{
        $this-error(&#39;上传文件异常,请与系统管理员联系&#39;);  
      }
    }
  }
  private function c($data){
    $file=M(&#39;file&#39;);
    $num  =  &#39;0&#39;;
    for($i = 0; $i < count($data)-1; $i++) {
      $data[&#39;filename&#39;]=$data[$i][&#39;savename&#39;];      
      if( $file->data($data)->add())
      {
        $num++;
      }
    }
    if($num==count($data)-1)
    {
      return true;  
    }else
    {
      return false;
    }
  }
  private function up(){
    //完成与thinkphp相关的,文件上传类的调用  
    import(&#39;@.Org.UploadFile&#39;);//将上传类UploadFile.class.php拷到Lib/Org文件夹下
    $upload=new UploadFile();
    $upload->maxSize=&#39;1000000&#39;;//默认为-1,不限制上传大小
    $upload->savePath=&#39;./Public/Upload/&#39;;//保存路径建议与主文件平级目录或者平级目录的子目录来保存  
    $upload->saveRule=uniqid;//上传文件的文件名保存规则
    $upload->uploadReplace=true;//如果存在同名文件是否进行覆盖
    $upload->allowExts=array(&#39;jpg&#39;,&#39;jpeg&#39;,&#39;png&#39;,&#39;gif&#39;);//准许上传的文件类型
    $upload->allowTypes=array(&#39;image/png&#39;,&#39;image/jpg&#39;,&#39;image/jpeg&#39;,&#39;image/gif&#39;);//检测mime类型
    $upload->thumb=true;//是否开启图片文件缩略图
    $upload->thumbMaxWidth=&#39;300,500&#39;;
    $upload->thumbMaxHeight=&#39;200,400&#39;;
    $upload->thumbPrefix=&#39;s_,m_&#39;;//缩略图文件前缀
    $upload->thumbRemoveOrigin=1;//如果生成缩略图,是否删除原图
    
    if($upload->upload()){
      $info=$upload->getUploadFileInfo();
      return $info;
    }else{
      $this->error($upload->getErrorMsg());//专门用来获取上传的错误信息的  
    }  
  }
}
?>

2. Vorlagenteil anzeigen:

Der Code der Vorlagendatei index.html lautet wie folgt:

<html>
<body>
<volist name="filelist" id="vo">
 小图:<img src="__PUBLIC__/upload/s_{$vo[&#39;filename&#39;]}" /><br />
 大图:<img src="__PUBLIC__/upload/m_{$vo[&#39;filename&#39;]}" /><br />
</volist>
<form action="__URL__/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file[]" /><br />
  <input type="file" name="file[]" /><br />
  <input type="file" name="file[]" /><br />
  <input type="submit" value="上传" />
</form>

</body>
</html>

Ich glaube, dass die in diesem Artikel beschriebenen Beispiele als Referenz für die Entwicklung von ThinkPHP-Programmen für jedermann dienen können.

Verwandte Empfehlungen:

Thinkphp-Implementierung eines ähnlichen Fuzzy-Query-Beispiels

Das obige ist der detaillierte Inhalt vonBeispiel für das Hochladen einer ThinkPHP-Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP扩展开发图文教程Nächster Artikel:ThinkPHP之R方法实例