java spring mvc 上传文件前台layui 后台

9 篇文章 0 订阅

/*html*/
    <td>
        <input id="EMP_REFERENCE_PROOF" label="初次参加工作日期证明" name="EMP_REFERENCE_PROOF" type="hidden" value="<%=pageBean.inputValue("EMP_REFERENCE_PROOF")%>" size="24"  class="layui-input text" />
        
        <div class="layui-upload-list">
            <a id="down_file" download="<%=pageBean.inputValue("EMP_REFERENCE_PROOF")%>" href="<%=pageBean.inputValue("EMP_REFERENCE_PROOF")%>" >下载</a> 
            <p id="demoText2"></p>
          </div>
          <a class="layui-btn layui-btn-sm layui-btn-warm" id="test2" ">上传文件</a>
    </td>
    <th>照片</th>
    <td>
        <div class="layui-upload">
            <input id="EMP_PHOTO" label="照片" name="EMP_PHOTO" type="hidden" value="<%=pageBean.inputValue("EMP_PHOTO")%>" size="24"  class="layui-input text" />
            <div class="layui-upload-list">
                <img class="layui-upload-img" id="demo1" src="<%=pageBean.inputValue("EMP_PHOTO")%>">
                <p id="demoText"></p>
              </div>
              <a class="layui-btn layui-btn-sm layui-btn-warm" id="test1" οnclick="uploadfile();">上传图片</a>
        </div>   
    </td>

/*js*/
layui.use('upload', function(){
  var $ = layui.jquery
  ,upload = layui.upload;
  
  //普通图片上传
  var uploadInst = upload.render({
    elem: '#test1'
    ,exts: 'jpg|png|gif|jpeg' //只允许上传压缩文件
    ,url: '<%=request.getContextPath()%>/index;jsessionid=<%=sessionId%>?HrEmployeeManageEdit&actionType=uploadFile'
    ,before: function(obj){
      //预读本地文件示例,不支持ie8
      obj.preview(function(index, file, result){
        $('#demo1').attr('src', result); //图片链接(base64)
      });
    }
    ,done: function(res){
      
      if(res.msg == "ok"){
          layer.msg('上传成功');
           $("#EMP_PHOTO").val(res.url);
      }else{//如果上传失败
          return layer.msg('上传失败');
      }
    }
    ,error: function(exe){
      //演示失败状态,并实现重传
      var demoText = $('#demoText');
      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
      demoText.find('.demo-reload').on('click', function(){
        uploadInst.upload();
      });
    }
  });
  //指定允许上传的文件类型
  upload.render({
    elem: '#test2'
    ,accept: 'file' //普通文件
    ,url: '<%=request.getContextPath()%>/index;jsessionid=<%=sessionId%>?HrEmployeeManageEdit&actionType=uploadFile'
       ,done: function(res){
          if(res.msg == "ok"){
              layer.msg('上传成功');
               $("#EMP_REFERENCE_PROOF").val(res.url);
               $("#down_file").attr("href",res.url);
               $("#down_file").attr("download",res.url);
               $("#down_file").show();
          }else{//如果上传失败
              return layer.msg('上传失败');
          }
    },error: function(exe){
      //演示失败状态,并实现重传
      var demoText = $('#demoText2');
      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
      demoText.find('.demo-reload').on('click', function(){
        upload.upload();
      });
    }
  });
});

/*后台*/

public ViewRenderer uploadFile(DataParam param) throws JSONException{
        String responseText = FAIL;
        JSONObject resObj = new JSONObject();
        try {
            DiskFileItemFactory fac = new DiskFileItemFactory();
            ServletFileUpload fileFileUpload = new ServletFileUpload(fac);
            fileFileUpload.setHeaderEncoding("utf-8");
            List fileList = null;
            InputStream input = null;
            fileList = fileFileUpload.parseRequest(request);
            FileOutputStream out = null;
            //List<FileItem> items = fileFileUpload.parseRequest(request); //解析request请求
            Iterator iter = fileList.iterator();
            String returnresponseText = ""; 
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (item.isFormField()) { //如果是表单域 ,就是非文件上传元素 必须要判断的 
                    String name = item.getFieldName(); //获取name属性的值
                    String value = item.getString(); //获取value属性的值
                } else { 
                    String fieldName = item.getFieldName(); //文件域中name属性的值
                    String fileName = item.getName(); //文件的全路径,绝对路径名加文件名 
                    String[] NameTypeList = fileName.split(".");
                    
                    String NameType = fileName.substring(fileName.lastIndexOf(".") + 1);
                    String contentType = item.getContentType(); //文件的类型
                    
                    long size = item.getSize(); //文件的大小,以字节为单位 
                    
                    
                    Date date = new Date();
                    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                    String dateString = formatter.format(date);
                    String WebRoots = getRequest().getSession()
                            .getServletContext().getRealPath("");
                    String iconUrl = WebRoots + "/"+contentType+"/" + dateString;// icon存放地址
                    File file = new File(iconUrl);
                    if (!file.exists()) {
                        file.mkdir();
                    }
                    String surr = fileName;//System.currentTimeMillis() + "."+NameType;
                    String url = file + "/" + surr;
                    
                    String apkUrl = contentType+"/" + dateString + "/" + surr;
                    //out = new FileOutputStream(url);// 上传到绝对路径...
                    
                    File saveFile = new File(url);
                    
                    File fileParent = saveFile.getParentFile();
                    if(!fileParent.exists()){
                        fileParent.mkdirs();
                    }
                    item.write(saveFile); 
                    saveFile.createNewFile();
                    //returnresponseText = url;
                    resObj.put("msg", "ok");
                    resObj.put("status", "200");
                    resObj.put("url", apkUrl);
                    
                    /*File saveFile = new File(url); //定义一个file指向一个具体的文件
                    saveFile.createNewFile();
                    if (!saveFile.exists()) {
                        saveFile.mkdir();
                    }
                    item.write(saveFile); //把上传的内容写到一个文件中
                    
                    byte[] b = new byte[1024];
                    int readLength = -1;
                    while ((readLength = input.read(b)) != -1) {
                        out.write(b, 0, readLength);
                    }
                    if(out != null){
                        out.close();    
                    }
                    if(input != null){
                        input.close();
                    }*/
                }
                //responseText = "{status:'SUCCESS',url:'"+returnresponseText+"'}";
            }
        } catch (Exception e) {
            resObj.put("msg", "error");
            resObj.put("status", "500");
            e.printStackTrace();
        }
        return new AjaxRenderer(resObj.toString());
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值