pms项目租客信息上传

第一种方式

在jsp页面中使用普通的方法

<!--

        文件上传两步操作:

        1.上传表单界面

            method:必须为post

            enctype:必须为multipart/form-data

        2.服务器中处理上传信息

     -->

     <form action="uploadServlet" method="post" enctype="multipart/form-data">

         账号:<input type="text" name="uname"><br>

         地址:<input type="text" name="address"><br>

         图片:<input type="file" name="upload"><br>

         <input type="submit" value="上传">

     </form>

在servlet中使用io流进行上传

 

ServletInputStream in = request.getInputStream();

           OutputStream out = new FileOutputStream("");

           int num = 0;

           byte[] b = new byte[1024];

           while((num=in.read(b)) !=-1){

                out.write(b, 0, num);

           }

           in.close();

           out.flush();

           out.close();

            PrintWriter o = response.getWriter();

            o.write("ok");

            o.flush();

            o.close();*/

//用上面的方式处理上传文件的时候,文件大小增大,原因是在用流传递文件的时候,浏览器会在头部加上一些属性信息

 


第二种方式

 

                        <form method="post" action="uploadServlet" class="form-horizontal" id="myForm" enctype="multipart/form-data">

                            <div class="form-group">

                                <label class="col-sm-3 control-label">公司名称</label>

                                <div class="col-sm-7">

                                    <input type="text" class="form-control" name="companyname" id="companyname">

                                </div>

                            </div>

                            <div class="form-group">

                                <label class="col-sm-3 control-label">法人姓名</label>

                                <div class="col-sm-7">

                                    <input type="text" name="managername" class="form-control">

                                </div>

                            </div>

                           

                            <div class="form-group">

                                <label class="col-sm-3 control-label">手机号码</label>

                                <div class="col-sm-7">

                                    <input type="text" class="form-control" name="phone">

                                </div>

                            </div>

                            <div class="form-group">

                                <label class="col-sm-3 control-label">身份证号码</label>

                                <div class="col-sm-7">

                                    <input type="text" class="form-control" name="identity">

                                </div>

                            </div>

                            <div class="form-group">

                                <label class="col-sm-3 control-label">身份证正面</label>

                                <div class="col-sm-7">

                                    <input type="file"  name="identitypositive">

                                </div>

                            </div>

                           

                            <div class="form-group">

                                <label class="col-sm-3 control-label">身份证反面</label>

                                <div class="col-sm-7">

                                    <input type="file"  name="identitynegative">

                                </div>

                            </div>

                           

                           

                           

                            <div class="form-group">

                                <div class="col-sm-4 col-sm-offset-2">

                                    <button class="btn btn-primary" type="submit">保存内容</button>

                                    <button class="btn btn-white" type="submit">取消</button>

                                </div>

                            </div>

                        </form>

 

servlet.java  

这时要导入commons-fileupload-1.2.2.jar  和   commons-io-1.4.jar

这种是表单数据和图片上传同时进行,不是很好,冗余太高

// 使用FileUpload 处理上传文件

           DiskFileItemFactory factory = new DiskFileItemFactory();

           ServletFileUpload upload = new ServletFileUpload(factory);

           try {

                // 解析request请求 list获取的就是表单域中的每个域

                List<FileItem> list = upload.parseRequest(request);

                TenantBean tb = new TenantBean();

                for (FileItem fi : list) {

                     String filedName = fi.getFieldName();

                     //System.out.println(fileName);

                     if(fi.isFormField()){

                           // 普通表单域

                           String value= fi.getString("utf-8");

                           System.out.println(filedName+"="+value);

                           if("companyname".equals(filedName)){

                                tb.setCompanyname(value);

                           }else if("managername".equals(filedName)){

                                tb.setManagername(value);

                           }else if("phone".equals(filedName)){

                                tb.setPhone(value);

                           }else if("identity".equals(filedName)){

                                tb.setIdentity(value);

                           }

                     }else{

                           // 获取文件名称a.sdfsd.0.jpg aaaa.xls  aaaa.exe  ssss.png

                           // 文件存储的名字我们需要自定义 名称需要改变但是文件的后缀不能改变

                           String oldName = fi.getName();

                           String path = "F:/tomcat/apache-tomcat-7.0.90/webapps/show/" //这是存储的地址

                           String newName = new Date().getTime()+(int)(Math.random()*100)+oldName.substring(oldName.lastIndexOf("."));

                           if("identitypositive".equals(filedName)){

                                // 正面

                                tb.setIdentitypositive(path+newName);

                           }else{

                                //反面

                                tb.setIdentitynegative(path+newName);

                           }

                           System.out.println(newName);

                           // 上传的文件

                           File file = new File(path+newName);

                           fi.write(file);

                           

                           //这样来上传图片的话 图片的地址在数据库中存储的很长

                     }

                }

                

                // 保存数据进入数据库

                tenantService.add(tb);

                response.sendRedirect(request.getContextPath()+"/tenant/add_tenant.jsp");

           } catch (Exception e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

           }


 

第三种方式

 

jsp页面

使用上传插件webupload  使得表单提交和文件上传分开执行

<form action="uploadServlet" method="post" enctype="multipart/form-data">

        <div class="form-group">

              <!-- div id; inp ty -------->

             <label class="col-sm-3  control-label">身份证正面</label>

             <div class="col-sm-7">

                    <div  id="uploader" class="wu-example">

                    <!--用来存放文件信息-->

                         <div  id="thelist1" class="uploader-list"></div>

                         <div  class="btns" id="idcard_id1">

                         <div  id="picker1">选择文件</div>

                         <!--  button如果不指定   type 为button 默认是submit -->

                         <button  id="ctlBtn1" type="button" class="btn btn-default">开始上传</button>

                    </div>

               </div>

               <!-- 身份证正面隐藏域表单,value是图片上传成功以后的 地址 -->

                 <input  type="hidden" id="identitypositive"  name="identitypositive" />   添加到的位置

              </div>

         </div>

</form>

     

<script type="text/javascript">

            // 身份证正面

                jQuery(function() {

                    var $ = jQuery,

                        $list = $('#thelist1'), // thelist节点中添加文本  身份证正面  div添加 

                        $btn = $('#ctlBtn1'), // 文件上传按钮   身份证正面 文件上传按钮

                        state = 'pending',

                        uploader;

                    //初始化

                    uploader = WebUploader.create({

                        // 不压缩image

                        resize: false,

                        // 文件接收服务端。

                        server: "fileUpload",

                        // 选择文件的按钮。可选。

                        // 内部根据当前运行是创建,可能是input元素,也可能是flash.

                           //开始上传 按钮的id

                        pick: '#picker1' ,

                       

                     // 只允许选择图片文件。

                        accept: {

                            title: 'Images',

                            extensions: 'jpg,jpeg,bmp,png',

                            mimeTypes: 'image/*'

                        },

                        //允许上传的文件个数

                        fileNumLimit:1,

                        //单个文件最大的上传限制 1M

                        fileSingleSizeLimit : 1024 * 1024 // 1M

                    });

                    // 当有文件添加进来的时候

                    uploader.on( 'fileQueued', function( file ) {

                        $list.append( '<div id="' + file.id + '" class="item">' +

                            '<h4 class="info">' + file.name + '</h4>' +

                            '<p class="state">等待上传...</p>' +

                        '</div>' );

                    });

                    // 文件上传过程中创建进度条实时显示。

                    uploader.on( 'uploadProgress', function( file, percentage ) {

                        var $li = $( '#'+file.id ),

                            $percent = $li.find('.progress .progress-bar');

                        // 避免重复创建

                        if ( !$percent.length ) {

                            $percent = $('<div class="progress progress-striped active">' +

                              '<div class="progress-bar" role="progressbar" style="width: 0%">' +

                              '</div>' +

                            '</div>').appendTo( $li ).find('.progress-bar');

                        }

                        $li.find('p.state').text('上传中');

                        $percent.css( 'width', percentage * 100 + '%' );

                    });

                    //文件上传成功后  触发的事件  触发一个回调函数

                    uploader.on( 'uploadSuccess', function( file,response) {

                      console.log(file);

                      console.log(response);

                      console.log("---"+response.code+"-------reData:"+response.msg+ "---" );

                     

                      // 上传的图片保存的相对位置

                      var idcard_url = $(response).attr("_raw");

                       $("#idcard_id1").append("<br><img  src='http://localhost:8081/show/"+idcard_url+"' style='width: 150px;height: 150px' />");

                      

                       //将url 添加到  form表单的隐藏域中

                       $("#identitypositive").val(idcard_url);

                      

                      $( '#'+file.id ).find('p.state').text('已上传');

                    });

                    uploader.on( 'uploadError', function( file ) {

                      //TODO

                        $( '#'+file.id ).find('p.state').text('上传出错');

                    });

                    uploader.on( 'uploadComplete', function( file ) {

                        $( '#'+file.id ).find('.progress').fadeOut();

                    });

                    uploader.on( 'all', function( type ) {

                        if ( type === 'startUpload' ) {

                            state = 'uploading';

                        } else if ( type === 'stopUpload' ) {

                            state = 'paused';

                        } else if ( type === 'uploadFinished' ) {

                            state = 'done';

                        }

                        if ( state === 'uploading' ) {

                            $btn.text('暂停上传');

                        } else {

                            $btn.text('开始上传');

                        }

                    });

                   

                    //出错以后回调的函数

                    uploader.on("error",function(type){

                      alert(type);

                      if(type == "F_EXCEED_SIZE"){

                           layer.alert('最大只能上传1M文件', {

                                  skin: 'layui-layer-molv' //样式类名

                           });

                      }

                    });

                    $btn.on( 'click', function() {

                        if ( state === 'uploading' ) {

                            uploader.stop();

                        } else {

                            uploader.upload();

                        }

                    });

                   

                   

                });

               </script>

 

要使用到的时候

    String companyname = request.getParameter("companyname");

           String phone =request.getParameter("phone");

           String managername =request.getParameter("managername");

           String identity =request.getParameter("identity");

           String identitypositive =request.getParameter("identitypositive"); //可以通过request找到这个域的方法

           String identitynegative =request.getParameter("identitynegative");

           TenantBean tb = new TenantBean();

           tb.setCompanyname(companyname);

           tb.setPhone(phone);

           tb.setManagername(managername);

           tb.setIdentitynegative(identitynegative);

           tb.setIdentity(identity);

           tb.setIdentitypositive(identitypositive);

           tenantService.add(tb);

 

           response.sendRedirect(request.getContextPath()+"/tenant/add_tenant_webupload.jsp");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值