php3.2實現多檔案上傳

來源:互聯網
上載者:User
本文主要和大家分享php3.2實現多檔案上傳的執行個體,希望能協助到大家。

public function upload(){    $upload = new \Think\Upload();// 執行個體化上傳類    $upload->maxSize   =     3145728 ;// 設定附件上傳大小    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳類型    $upload->rootPath  =      './Uploads/'; // 設定附件上傳根目錄    $upload->savePath  =      'slider/'; // 設定附件上傳(子)目錄    // 上傳單個檔案     $info   =   $upload->uploadOne($_FILES['files']);    if(!$info) {// 上傳錯誤提示錯誤資訊        $this->error($upload->getError());    }else{// 上傳成功 擷取上傳檔案資訊        $url= $info['savepath'].$info['savename'];    }    return $url;}

這個是單檔案上傳的時候源碼,其中的 $info = $upload->uploadOne($_FILES['files']);這個位置限制住了檔案上傳是單檔案

還有就是前端的input選擇的問題

public function upload(){    $upload = new \Think\Upload();// 執行個體化上傳類    $upload->maxSize   =     3145728 ;// 設定附件上傳大小    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳類型    $upload->rootPath  =      './Uploads/'; // 設定附件上傳根目錄    $upload->savePath  =      'last/'; // 設定附件上傳(子)目錄    // 上傳多個檔案     $info   =   $upload->upload();if(!$info) {// 上傳錯誤提示錯誤資訊    $this->error($upload->getError());}else{// 上傳成功 擷取上傳檔案資訊    foreach($info as $file){        $url .= $file['savepath'].$file['savename'].',';    }}    return $url;}

這個是多檔案上傳的方法主要的區別在於$info = $upload->upload();這個部位

以及$url .= $file['savepath'].$file['savename'].',';這部分的限制

前端的單檔案,多檔案區別也是很大的

這個是多檔案的區別

 <input type="file" name="files[]" multiple="">

官方的解釋

如果需要使用多個檔案上傳,只需要修改表單,把

<input type='file'  name='photo'>

改為

<input type='file'  name='photo1'><input type='file'  name='photo2'><input type='file'  name='photo3'>

或者

<input type='file'  name='photo[]'><input type='file'  name='photo[]'><input type='file'  name='photo[]'>

兩種方式的多附件上傳系統的檔案上傳類都可以自動識別。

多檔案上傳的時候

還有一個問題是區分出來1,2,3.。。。n個input

//擷取商品圖片路徑和詳情圖片路徑        $str = $this->upload();        $count1 = count($_FILES['files1']['name']);//擷取商品圖片上傳個數        $arr = explode(',',$str);        $slider = '';        $detail = '';        foreach ($arr as $k=>$v){            if($k+1<$count1){                $slider .= $v.',';            }else{                $detail .= $v.',';            }        }        $slider = rtrim($slider,',');        $detail = rtrim($detail,',');

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.