中午有限时间写这博文,前言就不必多说了,直奔主题吧。

BUI是一个前端框架,关于BUI的介绍请看博主的文章那些年用过的一些前端框架。

下面我们开始实例的讲解!

一、效果演示:

上传成功后,会发现本地相应的sava目录下多了刚刚上传的图片(因为只是一个例子,就保存在本地目录了)。

二、实例讲解

本实例使用的环境,eclipse + maven。
使用的技术:SpringMVC + BUI。

关于Spring和SpringMVC的配置,这里就不多说明了。最后会提供源码下载,猿友们自行下载即可看到所有配置文件和代码。

SpringMVC想要实现上传文件,还需要添加如下jar依赖:

<!-- 文件上传相关包 -->
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version>
</dependency>
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version>
</dependency>
<dependency><groupId>tomcat</groupId><artifactId>catalina-manager</artifactId><version>5.5.23</version>
</dependency>

另外还需要在spring-mvc.xml文件里面添加bean:

<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

下面是直接上controller代码:

package com.luo.controller;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;@Controller
public class UserController {private final String SAVE_DIR = "C:/Users/luoguohui/Desktop/save/";@RequestMapping("/index.jhtml")public ModelAndView getIndex(HttpServletRequest request) throws IOException {ModelAndView mav = new ModelAndView("index");return mav;}@RequestMapping(value="/uploadFlie.json", method=RequestMethod.POST)@ResponseBody  public String uploadFlie(HttpServletRequest request)throws IOException {MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();String fileName = null;for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {MultipartFile myfile = entity.getValue();fileName = myfile.getOriginalFilename();byte[] bs = myfile.getBytes();File file = new File(SAVE_DIR + fileName);FileOutputStream fos = new FileOutputStream(file);fos.write(bs);fos.close();}return "{\"url\" : \"" + SAVE_DIR + fileName + "\"}";}
}

上面的代码就不作过多的解释的了,基本一看就懂,就是把获取到的上传的文件放到如下目录:

C:/Users/luoguohui/Desktop/save/

下面上前端代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<link href="<%=request.getContextPath()%>/static/bui/css/dpl-min.css" rel="stylesheet">
<link href="<%=request.getContextPath()%>/static/bui/css/bui-min.css" rel="stylesheet">
<script src="<%=request.getContextPath()%>/static/bui/js/jquery-1.8.1.min.js"></script>
<script src="<%=request.getContextPath()%>/static/bui/js/bui-min.js"></script>
<script src="<%=request.getContextPath()%>/static/bui/js/layout-min.js"></script>
<script src="<%=request.getContextPath()%>/static/bui/js/uploader-min.js"></script>
</head>
<body><div class="demo-content" style="margin:20px;"><div class="row"><div class="span8"><div id="J_Uploader"></div></div></div>
</body>
<script type="text/javascript">
// http://120.26.80.109/demo/uploader.php#uploader/checkSuccess.php
BUI.use('bui/uploader',function (Uploader) { /***  返回数据的格式*  默认是 {url : 'url'},否则认为上传失败*  可以通过isSuccess 更改判定成功失败的结构*/var uploader = new Uploader.Uploader({render: '#J_Uploader',url: '<%=request.getContextPath()%>' + '/uploadFlie.json',rules: {//文的类型ext: ['.png,.jpg','文件类型只能为{0}'],//上传的最大个数max: [1, '文件的最大个数不能超过{0}个'],//文件大小的最小值,这个单位是kbminSize: [10, '文件的大小不能小于{0}KB'],//文件大小的最大值,单位也是kbmaxSize: [2048, '文件大小不能大于2M']},//根据业务需求来判断上传是否成功isSuccess: function(result){if(result && result.url){BUI.Message.Alert("上传成功,文件已保存到目录:" + result.url);}else{BUI.Message.Alert("上传失败");}}}).render();
});
</script>
</html>

上面的代码主要是使用了BUI的上传文件功能,记得需要导入uploader-min.js才能上传哦,另外对上传的文件数量,格式,大小作了一些设置。

三、源码下载

http://download.csdn.net/detail/u013142781/9421985

下载源码,项目跑起来之后访问如下url即可跳转到文件上传页面:

http://localhost:8080/first_maven_project/index.jhtml

时间有限,就介绍到这里了,如有什么不明白的地方,欢迎私信或评论交流。

SpringMVC+BUI实现文件上传(附详解,源码下载)相关推荐

  1. java formfile_基于Struts文件上传(FormFile)详解

    Struts中FormFile用于文件进行上传 1.在jsp文件中进行定义 名字: 头像: 2.在Form表单中定义FormFile /* * Generated by MyEclipse Strut ...

  2. Pikachu靶场之文件上传漏洞详解

    Pikachu靶场之文件上传漏洞详解 前言 文件上传漏洞简述 什么是文件上传漏洞? 文件上传的原理 文件上传漏洞有哪些危害 文件上传漏洞如何查找及判断 文件上传如何防御 文件上传漏洞绕过的方式有哪些 ...

  3. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  4. 文件上传漏洞详解(CTF篇)

    需要了解的前置知识: 1.什么是文件上传: 文件上传就是通过流的方式将文件写到服务器上 文件上传必须以POST提交表单 表单中需要 <input type="file" na ...

  5. FastDFS的配置、部署与API使用解读(8)FastDFS多种文件上传接口详解(转)

    1.StorageClient与StorageClient1的区别 相信使用happy_fish的FastDFS的童鞋们,一定都熟悉StorageClient了,或者你熟悉的是StorageClien ...

  6. jquery组件WebUploader文件上传用法详解

    这篇文章主要为大家详细介绍了jquery组件WebUploader文件上传用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 WebUploader是由Baidu WebFE(FEX)团队开发的一 ...

  7. java web文件上传详解_java web图片上传和文件上传实例详解

    java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...

  8. struts2框架单文件、多文件上传实例详解

    版权声明:本文为博主原创文章,如需转载,请标明出处. https://blog.csdn.net/alan_liuyue/article/details/79390681 简介 1.上一篇博客讲解了J ...

  9. 【网络安全】文件上传漏洞 详解

    文件上传漏洞 1.什么是文件上传 将客户端数据以文件形式封装,通过网络协议发送到服务器端.在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存. 通常一个文件以HTTP协议进行上传时,将POST请 ...

最新文章

  1. java类为什么要建两个class_ClassLoader的几个概念、类和对象的解释
  2. 区块链BaaS云服务(17)纸贵科技Z-BaaS“数据治理”
  3. 吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
  4. C++Adaline自适应线性神经网络算法(附完整源码)
  5. 重载和const形参
  6. python购物车实现的功能是什么_Python3实现购物车功能
  7. java socket如何请求485协议_javaSE第十五部分 网络编程(1)Socket和ServerSocket
  8. 控制寄存器:指令指针寄存器IP:存放下一条指令的地址的偏移量,标志寄存器FR(16):
  9. 解救电商大促没灵感的设计师|攻略模板奉上
  10. 启动go服务_go微服务框架go-micro深度学习 rpc方法调用过程详解
  11. java之IO整理(下)
  12. 卷积神经网络图像识别_[源码和文档分享]基于CUDA的卷积神经网络算法实现
  13. [充电]Code Review
  14. 25 The Go image/draw package go图片/描绘包:图片/描绘包的基本原理
  15. C#调用dll代码范例
  16. dns服务器一些网站无法解析,dns解析出错,导致有些网站解析出错,重启DNS服务器就正常了。 - Exchange论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  17. LTE终端能力等级 Category
  18. uniapp 实现微信小程序全局分享及自定义分享按钮样式
  19. 过压保护电路(OVP)
  20. 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

热门文章

  1. 快充或将成为新的卖点!OPPO RenoAce官宣,65W闪充+90Hz屏幕
  2. Solr实现推荐酒店查询
  3. 手机锁屏弹出通知 php,Notification通知在OPPO手机上不弹出提示?
  4. 浅谈设计模式之状态机模式
  5. 日全食倒计时js代码
  6. JDK8 Stream 数据流效率分析,Java开发你需要了解的那些事
  7. http和socket关系
  8. 稳压二极管的限流电阻的计算
  9. Flutter开发 - 渐变色设置
  10. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。