tp5中bootstrap文件上传插件fileinput表单提交图片和数据缩略图
未知
2021-07-02 16:12:18
0

问题描述:

   使用bootstrap框架做一个文件上传的表单,有图片有数据。使用的插件是fileinput。

解决办法:

html代码

              1,表单页面
<form action="insert" class="form-horizontal" method="post" enctype="multipart/form-data" >
                  <div class="modal-body">
                       <div class="form-group">
                           <label class="col-xs-2 control-label">账户名称*</label>
                           <div class="col-xs-9">
                                <input type="text" name="account" value="" placeholder="客户的账户名称" class="form-control">
                           </div>
                       </div>
                       <div class="form-group">
                           <label class="col-xs-2 control-label">上传图片*</label>
                                <input id="input-id" type="file" name="file[]" multiple data-show-caption="true">                     
                       </div>
                       <div class="form-group">
                            <button type="submit" class="btn btn-danger">保存</button>
                       </div>
                  </div>
            </div>
        </form>
<script type="text/javascript">
        $(function () {
             initFileInput("input-id");
         })
 
 function initFileInput(ctrlName) {
     var control = $('#' + ctrlName);
     control.fileinput({
         language: 'zh', //设置语言
         // uploadUrl: "insert", //上传的地址
         allowedFileExtensions: ['jpg', 'gif', 'png'],//接收的文件后缀
         //uploadExtraData:{"id": 1, "fileName":'123.mp3'},
         uploadAsync: false, //默认异步上传
         showUpload: false, //是否显示上传按钮
         showRemove : false, //显示移除按钮
         showPreview : true, //是否显示预览
         showCaption: false,//是否显示标题
         browseClass: "btn btn-primary", //按钮样式
         dropZoneEnabled: false,//是否显示拖拽区域
         //minImageWidth: 50, //图片的最小宽度
         //minImageHeight: 50,//图片的最小高度
         //maxImageWidth: 1000,//图片的最大宽度
         //maxImageHeight: 1000,//图片的最大高度
         maxFileSize: 2024,//单位为kb,如果为0表示不限制文件大小
         //minFileCount: 0,
         //maxFileCount: 10, //表示允许同时上传的最大文件个数
         enctype: 'multipart/form-data',
         validateInitialCount:true,
         previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
         msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
         layoutTemplates :{
              // actionDelete:'', //去除上传预览的缩略图中的删除图标
             // actionUpload:'',//去除上传预览缩略图中的上传图片;
             //actionZoom:''   //去除上传预览缩略图中的查看详情预览的缩略图标。
         },
     }).on('filepreupload', function(event, data, previewId, index) {     //上传中
         var form = data.form, files = data.files, extra = data.extra,
         response = data.response, reader = data.reader;
         console.log('文件正在上传');
     }).on("fileuploaded", function (event, data, previewId, index) {    //一个文件上传成功
         console.log('文件上传成功!');
     debugger
         console.log('文件上传成功!'+data.response.id);
 
     }).on('fileerror', function(event, data, msg) {  //一个文件上传失败
         console.log('文件上传失败!'+data.id);
 
 
     })
 }


    </script>

 2,展示页面
           {volist name="list" id="vo"}
                        <tr>
                            <td>{$vo.id}</td>
                            <td>{$vo.account}</td>
                            <td>{$vo.imagess}</td>
                    
                        </tr>
             {/volist}            
             {$lists->render()}

php代码

//执行添加表单
    public function insert(){
        $files = request()->file('file');//获取文件的变量
        $data=request()->post();//获取数据的变量
 
        if($files){
            $img_path=ROOT_PATH . 'public' . DS . 'static' . DS . 'home' . DS . 'ygjin'. DS ;
            //循环上传
            // 获取表单上传文件
            foreach($files as $file){
                // 移动到框架应用根目录/public/uploads/ 目录下
                $info = $file->move($img_path);
                $str[] = $info -> getSaveName();//20201212/e38bcd88e1a2b32ef4c9f1a08fb75c7c.png
            }
            $arr['images'] = implode(',',$str); 
            $arr['account']=$data['account'];
            $res = Db::name('yojin') -> insert($arr);
            if($res){
                $this->redirect('index');
            }else{
                $this -> error('添加失败');
            }          
        }else {
            // 上传失败获取错误信息
            return $files->getError();
        }

    }
// 加载列表页面

    public function index(){
        //从数据库获取数据       
        $mms=Db::name('yojin')->order('id','desc')->paginate(15);//分页
        $mm=Db::name('yojin')->order('id','desc')->select();//做循环图片用
        $img_path='/public' . DS . 'static' . DS . 'home' . DS . 'yojin'. DS ;
        foreach ($mm as &$val) {
            $imgArr=explode(',', $val['images']);
            $val['imagess']='';
            for ($i=0; $i < count($imgArr); $i++) {
                $val['imagess'] .="<img style='width:100px' src='".$img_path.$imgArr[$i]."' alt=''>";
            }
        }       
        //分配变量
        $this->assign(["list"=>$mm,"lists"=>$mms]);
        return view();
    }

相关内容

巴西音乐人邀请西安外事鼓乐...
巴西音乐家与西安外事鼓乐团合作,共谱文化交响,融合东西方音乐元素,...
2024-11-20 21:23:35
MySQL变量在数据库操作...
MySQL变量在数据库操作中至关重要,用于存储数据、配置操作、实现...
2024-11-20 17:46:42
PHP中SQLSRV处理大...
摘要:在PHP中使用SQLSRV处理大数据量时,可通过数据库端索引...
2024-11-20 10:46:41
PHP中SQLSRV连接数...
PHP中SQLSRV连接数据库安全性分析,需注意密码保护、身份验证...
2024-11-20 09:46:38
PHP SQLSRV在We...
PHP SQLSRV是PHP连接SQL Server数据库的重要工...
2024-11-20 09:23:38
PHP中SQLSRV扩展的...
PHP中SQLSRV扩展使用技巧:通过安装配置、连接数据库、执行S...
2024-11-20 08:46:43

热门资讯

tp5 jquery判断手机端... application--common.php中添加如下代码 //函数作用是判断用户打开的是手机端还...
Laravel 5.5 .No... 创建了新的laravel项目后, 运行提示:No application encryption ke...
php 打印date函数出现错... 问题描述: 我使用的是phpstudy,在练习时间函数的时候,打印出现在的时间,date(Y-m-d...
生成随机字符唯一标识符guid... /** * @param $length * @return string * 生成随机字符串 */...
layui缩略图 div class=layui-form-item label class=layui-form-l...
php函数substr_rep... php函数substr_replace从某个位置替换或删除或插入字符串
Laravel 引入自定义类库... 强烈建议引入的类 都是含有命名空间的,这样使用起来就不会出现重名的情况。!!当然,没有命名空间也可以...
object json转化为数... //调用api 程序,通知商户订单异常 20200314 public function callt...
Laravel 查看SQL操作... 方法一:临时打印操作记录 DB::connection()-enableQueryLog(); # ...
php银行开放平台接口:pfx... 问题描述: 对接易通银行,他们的服务开放平台是java开发,而我的是php,现在需要php版本的SD...