layui实现本地文件上传

  1. 下载layui
  2. 引入js
<link rel="stylesheet" href="layui/css/layui.css">
<script src="layui/layui.js"></script>
  1. 实现文件上传
<button type="button" style="outline: none;border: none;background: transparent;color: red;" id="u_fileUpload">
  U盘上传
</button>

<script>
 layui.use('upload', function(){
        var upload = layui.upload;
        //执行实例
        upload.render({
            elem: '#u_fileUpload' //绑定元素
            ,url: '${filePlatAddr}atta/uploadFile.do' //上传接口
            ,exts: 'xls|xlsx|csv|zip|pdf|doc|docx|png|jpeg|jpg|gif'// 设置允许上传的格式
            ,done: function(res){
                //上传完毕回调
             		Dialog.alert(res.data);
            }
            ,error: function(){
                //请求异常回调
                Dialog.alert(res.msg);
            }
        });
    });
</script>
  1. 接口调用问题
<!-- 处理文件上传,在spring-context.xml配置multipartResolver -->
<bean id="multipartResolver" class="com.zfsoft.sys.config.MyMultipartResolver">
  <property name="maxUploadSize" value="102400000"></property>
</bean>
//   MultipartResolver 和ServletFileUpload冲突的问题,添加一个过滤需要MultipartResolver接口的过滤
@Configuration
public class MyMultipartResolver extends CommonsMultipartResolver {
    /**
     * 这里是处理Multipart http的方法。如果这个返回值为true,那么Multipart http body就会MyMultipartResolver 消耗掉.如果这里返回false
     * 那么就会交给后面的自己写的处理函数处理例如刚才ServletFileUpload 所在的函数
     * @see org.springframework.web.multipart.commons.CommonsMultipartResolver#isMultipart(javax.servlet.http.HttpServletRequest)
     */
    @Override
    public boolean isMultipart(HttpServletRequest request) {
        boolean contains = request.getRequestURI().contains("atta/uploadFile.do");
        if (contains){
            return super.isMultipart(request);
        }
        return false;
    }
}
// 上传文件请求及返回参数问题,返回参数要为json,需要添加@ResponseBody
@ResponseBody
@RequestMapping(value = "/uploadFile.do")
public Map<String,Object> uploadFile(MultipartFile file, HttpServletRequest request) {
  try {
       InputStream is = file.getInputStream();
       String name = file.getOriginalFilename();
       String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";
       String ret = HttpConnectionUtil.uploadFile(basePath + FileManageUtil.UPLOAD_SINGLE_FILE, name, null, is);
       org.json.JSONObject jsonObject = new org.json.JSONObject(ret);
       org.json.JSONObject result = jsonObject.optJSONObject("result");
       if (result != null) {
           String oid = result.optString("oid");
           Map<String,Object> relMap = new HashMap<String,Object>();
           relMap.put("msg", "ok");
           relMap.put("code", 200);
           relMap.put("data", oid);
           return relMap;
       }
   } catch (Exception e) {
       e.printStackTrace();
   }
   return null;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值