<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 圖片上傳(插件) <blockquote class="danger"><p>插件上傳圖片的話是先將圖片上傳上去, 返回一個參數值, 這樣就打成了無刷新預覽的目的.唯一的缺點就是上傳之后, 他再次上傳或者持續上傳的話, 不會寫入數據庫, 就變成了冗余圖片. 需要其他機制處理. </p></blockquote> * 圖片上傳采用layer+php上傳. * 沒有新建頁面, 直接在三級分銷-積分處理里面加上這句即可上傳. * 函數為integral, 函數寫在application/admin/model/Index.php * addIntegral方法 ~~~ ->addFormItem('picture_id', '上傳頭像','上傳頭像.','picture','','required') ~~~ * 路徑application/admin/model/Index.php * 此處采用layer上傳, 簡單的寫了下回調. 覺得這個組件回調不是很好看.雖然解決了問題. * 上傳訪問路徑, admin下的File下的upload.公有上傳 ![](https://box.kancloud.cn/d0885a384bd393426f1d253d45a13361_451x175.png) ~~~ {case value="picture"} {php} $webuploader=1; if (strpos($field['name'],'[')) { $field['id'] = str_replace(']','',str_replace('[','',$field['name'])); }else{ $field['id'] = $field['name']; } {/php} <div class="layui-form-item item_{$field.name} {$field.extra_class}"> <label class="layui-form-label">{$field.title}</label> <div class=""> <input type="file" name="file" class="layui-upload-file " style=" float:left;" id="picture_{$field.name}"> <img src="" width="150px;" height="150px;" id="img_{$field.id}" style="display:none; float:left;"> <input class="attach" type="hidden" id="{$field.id}" name="{$field.name}" value=""/> </div> </div> <script> layui.use('upload', function(){ layui.upload({ elem:"#picture_{$field.name}" , url: "{:url('admin/File/upload',['uploadtype'=>'picture','setpath'=>'product'])}" //上傳接口 ,success: function(res){ //上傳成功后的回調 $("#img_{$field.id}").css('display','block'); $("#img_{$field.id}").attr('src',res['info']['url']); $("#{$field.id}").attr("value",res['info']['url']); } }); }); </script> {/case} ~~~ * 在配置文件里面配置三種上傳的路徑, 也就是不同的上傳 * 附件上傳用于傳附件的. * picture用于上傳圖片的. * avatar_upload用于上傳頭像的. * 這樣就可以通過不同的上傳進行判斷. js判斷也好.后端判斷也好. 此處只做了picture_upload其他上傳自行擴展. * 路徑application/config.php ~~~ // +---------------------------------------------------------------------- // | 附件上傳 // +---------------------------------------------------------------------- 'file_upload' => array( // 允許上傳的文件MiMe類型 'mimes' => [], // 上傳的文件大小限制 (0-不做限制) 'maxSize' => 2*1024*1024, // 允許上傳的文件后綴 'exts' => ['xlsx,xls'], // 子目錄創建方式,[0]-函數名,[1]-參數,多個參數使用數組 'subName' => ['date', 'Y-m-d'], //保存根路徑 'rootPath' => './public/uploads/attachment', // 保存路徑 'savePath' => '', // 上傳文件命名規則,date,md5,sha1,自定義規則 'saveName' => 'uniqid', // 文件上傳驅動e, 'driver' => 'local', ), 'picture_upload' => array( // 允許上傳的文件MiMe類型 'mimes' => [], // 上傳的文件大小限制 'maxSize' => 2*1024*1024, // 允許上傳的文件后綴 'exts' => 'gif,jpg,jpeg,bmp,png', // 子目錄創建方式,[0]-函數名,[1]-參數,多個參數使用數組 'subName' => ['date', 'Y-m-d'], //保存根路徑 'rootPath' => './public/uploads/picture', // 保存路徑 'savePath' => '', // 上傳文件命名規則,date,md5,sha1,自定義規則 'saveName' => 'uniqid', // 文件上傳驅動e, 'driver' => 'local', ), 'avatar_upload' => array( // 允許上傳的文件MiMe類型 'mimes' => [], // 上傳的文件大小限制 'maxSize' => 2*1024*1024, // 允許上傳的文件后綴 'exts' => 'gif,jpg,jpeg,bmp,png', // 子目錄創建方式,[0]-函數名,[1]-參數,多個參數使用數組 'subName' => ['date', 'Y-m-d'], //保存根路徑 'rootPath' => './public/uploads/avatar', // 保存路徑 'savePath' => '', // 上傳文件命名規則,date,md5,sha1,自定義規則 'saveName' => 'uniqid', // 文件上傳驅動e, 'driver' => 'local', ), ~~~ * 文件控制器 * 這個為公有文件控制器, 用于所有單個上傳處理. * 路徑application/admin/controller/File.php ~~~ namespace app\admin\controller; use app\admin\controller\Base; use app\admin\controller\Upload as UploadController; use think\Loader; use think\Config; class File extends Base { function _initialize() { parent::_initialize(); // p($this->member_model); // exit; } /** * 上傳 * @return [type] [description] */ public function upload() { $uploadtype = $this->param['uploadtype']; $setpath = $this->param['setpath']; $controller = new UploadController; $return = $controller->upload($uploadtype,$setpath); return json($return); } /** *[uploadAvatar] 上傳圖像操作 * @return [type] [description] */ public function uploadAvatar($uuid=0) { $return = [ 'status' =>1, 'path' =>'/public/images/defalut.jpg', 'msg' =>'提示成功' ]; return json($return); } } ~~~ * 上傳控制器, 在此處上傳完成之后將值回調回去. * 此處作為公有, 無論有怎么樣的單圖上傳即可在此處理. * 路徑application/admin/controller/Upload.php ~~~ namespace app\admin\controller; use think\Request; class Upload { protected $request; /** * 架構函數 * @param Request $request Request對象 * @access public */ public function __construct() { $this->request = Request::instance(); $this->file_model = new File(); } /** * 上傳控制器 */ public function upload($uploadtype,$setpath) { $upload_type = $uploadtype; $setpath = $setpath; $config = config($upload_type.'_upload'); $rootPath = $setpath!='picture' && $setpath ? './public/uploads/'.$setpath : $config['rootPath']; $upload_path = $rootPath.'/'.call_user_func_array($config['subName'][0],[$config['subName'][1],time()]); $file = $this->request->file('file'); $info = $file->validate(['size'=>$config['maxSize'],'ext'=>$config['exts'][0]])->rule($config['saveName'])->move($upload_path, true, false); if ($info) { $upload_info = $this->parseFile($info); $save_upload_name = $upload_info['path']; //oss_uploadFile($save_upload_name);//存儲到靜態資源服務器 $return['status'] = 1; $return['info'] = $upload_info; } else { $return['status'] = 0; $return['info'] = $file->getError(); } return $return; } /** * 上傳用戶頭像 * @param integer $uid [description] * @return [type] [description] */ public function uploadAvatar($uid=0) { if (!$uid) return false; $config = config('avatar_upload'); $upload_path = $config['rootPath'].'/'.$uid; // 獲取表單上傳文件 例如上傳了001.jpg $file = $this->request->file('file'); $info = $file->validate(['size'=>$config['maxSize'],'ext'=>$config['exts']])->rule($config['saveName'])->move($upload_path, true, false); if ($info) { $return['status'] = 1; $return['info'] = $info; } else { $return['status'] = 0; $return['info'] = $file->getError(); } return $return; } /** * 保存上傳的信息到數據庫 * @var view * @access public */ public function save($config, $from_file_name, $file) { $file = $this->parseFile($file); $file['member_id'] = is_login(); $file['location'] = $config['driver']; $file['status'] = 1; $info=$this->file_model->get(['md5'=>$file['md5'],'sha1'=>$file['sha1']]); if ($info) { $info = $info->toArray(); $info['msg']='文件已存在'; return $info; } else { $this->file_model->allowField(true)->data($file)->save(); $id = $this->file_model->id; if ($id>0) { $data = $this->file_model->get($id); return $data; } else { return false; } } } protected function parseFile($info) { $data['create_time'] = $info->getATime(); $data['basename'] = $info->getBasename(); //$data['c_time'] = $info->getCTime(); $data['ext'] = $info->getExtension(); $data['name'] = $info->getFilename(); $data['mime_type'] = strstr($info->getMime(),'/',true); $data['savepath'] = $info->getPath(); $data['path'] = str_replace("\\", '/', substr($info->getPathname(), 1)); $data['url'] = config('oss_alias_url').$data['path']; $data['size'] = $info->getSize(); $data['md5'] = md5_file($info->getPathname()); $data['sha1'] = sha1_file($info->getPathname()); return $data; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看