pms项目租客信息上传

第一种方式

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

    

         账号:

         地址:

         图片:

         

    

在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 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">

        

             

             

             

                   

                   

                         

                         

                         选择文件

                         

                         开始上传

                   

               

               

                    添加到的位置

             

         

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( ' + file.id + '" class="item">' +

                            '

' + file.name + '

' +

                            '

等待上传...

' +

                        '' );

                    });

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

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

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

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

                        // 避免重复创建

                        if ( !$percent.length ) {

                            $percent = $('' +

                              '' +

                              '' +

                            '').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("
"
);

                      

                       //将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");

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部