附件上传插件fileinput+SpringMVC后台代码实现
2018-02-02 13:43
537 查看
1.JS,CSS引用
<link rel="stylesheet" href="/bower_components/bootstrap-fileinput/css/fileinput.css" type="text/css">
<script src="/bower_components/bootstrap-fileinput/js/fileinput.js"></script>
<script src="/bower_components/bootstrap-fileinput/js/locales/zh.js"></script><!--汉化JS-->
2.HTML
<input id="file-pic" name="file" type="file" >3.JS代码(属性可以自行百度)
//初始化附件上传控件
p._fileInputOnLoad = function(id){
$('#'+id).fileinput({//初始化上传文件框
multiple:false,
language : 'zh',
uploadUrl: "/files/upload?_csrf="+p.csrf,
autoReplace : true,
showUpload: false, //是否显示上传按钮
maxFileCount : 1,
showPreview : false,
showRemove : false,
allowedFileExtensions : [ "jpg", "png", "gif"],
browseClass : "btn btn-primary", //按钮样式
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!"
});
}
//附件上传控件绑定事件
p._fileInputMatch = function(id){
$('#'+id).on('filebatchselected', function (event, data, id, index) {
$(this).fileinput("upload");
});
$('#'+id).on("fileuploaded", function(e, data,preview) {
var res = data.response;
$("#imageUrl").val(res.url);
$(".img-circle").attr('src',res.url);
});
}4.后台java代码
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Mr.Yuan on 2018/02/02.
*/
@Controller
@RequestMapping("/files")
public class FileOperationController {
@PostMapping("/upload")
@ResponseBody
public Map<String, Object> upload(MultipartHttpServletRequest request) throws IOException {
Map<String, Object> json = new HashMap<String, Object>();
MultiValueMap<String,MultipartFile> map = request.getMultiFileMap();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "plain", Charset.forName("UTF-8")));
List<MultipartFile> list = map.get("file");// 获取到文件的列表
String path= "C:/upload"; //文件上传路径信息
for (MultipartFile mFile : list) {
String originalFileName= mFile.getOriginalFilename();//获取文件名称
String UUID = java.util.UUID.randomUUID().toString();
byte[] bytes = mFile.getBytes();//获取字节数组
String fileBname = UUID+"."+mFile.getOriginalFilename().substring(mFile.getOriginalFilename().lastIndexOf(".")+1);
String filePath= path+ File.separator+ fileBname;
FileOutputStream fos= new FileOutputStream(new File(filePath)); //写出到文件
fos.write(bytes);
fos.flush();
fos.close();
json.put("url", filePath);
}
return json;
}
}
<link rel="stylesheet" href="/bower_components/bootstrap-fileinput/css/fileinput.css" type="text/css">
<script src="/bower_components/bootstrap-fileinput/js/fileinput.js"></script>
<script src="/bower_components/bootstrap-fileinput/js/locales/zh.js"></script><!--汉化JS-->
2.HTML
<input id="file-pic" name="file" type="file" >3.JS代码(属性可以自行百度)
//初始化附件上传控件
p._fileInputOnLoad = function(id){
$('#'+id).fileinput({//初始化上传文件框
multiple:false,
language : 'zh',
uploadUrl: "/files/upload?_csrf="+p.csrf,
autoReplace : true,
showUpload: false, //是否显示上传按钮
maxFileCount : 1,
showPreview : false,
showRemove : false,
allowedFileExtensions : [ "jpg", "png", "gif"],
browseClass : "btn btn-primary", //按钮样式
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!"
});
}
//附件上传控件绑定事件
p._fileInputMatch = function(id){
$('#'+id).on('filebatchselected', function (event, data, id, index) {
$(this).fileinput("upload");
});
$('#'+id).on("fileuploaded", function(e, data,preview) {
var res = data.response;
$("#imageUrl").val(res.url);
$(".img-circle").attr('src',res.url);
});
}4.后台java代码
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Mr.Yuan on 2018/02/02.
*/
@Controller
@RequestMapping("/files")
public class FileOperationController {
@PostMapping("/upload")
@ResponseBody
public Map<String, Object> upload(MultipartHttpServletRequest request) throws IOException {
Map<String, Object> json = new HashMap<String, Object>();
MultiValueMap<String,MultipartFile> map = request.getMultiFileMap();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "plain", Charset.forName("UTF-8")));
List<MultipartFile> list = map.get("file");// 获取到文件的列表
String path= "C:/upload"; //文件上传路径信息
for (MultipartFile mFile : list) {
String originalFileName= mFile.getOriginalFilename();//获取文件名称
String UUID = java.util.UUID.randomUUID().toString();
byte[] bytes = mFile.getBytes();//获取字节数组
String fileBname = UUID+"."+mFile.getOriginalFilename().substring(mFile.getOriginalFilename().lastIndexOf(".")+1);
String filePath= path+ File.separator+ fileBname;
FileOutputStream fos= new FileOutputStream(new File(filePath)); //写出到文件
fos.write(bytes);
fos.flush();
fos.close();
json.put("url", filePath);
}
return json;
}
}
相关文章推荐
- webuploader+springmvc实现多文件上传(html+js+css原创,后台代码借鉴)
- 搭建图片服务器《四》:后台java代码springMVC+spring实现图片上传
- springboot+bootstrap fileupinput 插件实现文件上传
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
- springmvc+jquery-form插件实现页面无刷新上传
- dwz+jquery+fileupload+springmvc实现文件上传 及图片预览
- springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
- SpringMVC+ajaxFileUpload.js实现文件上传
- Bootstrap的fileinput插件实现多文件上传的方法
- ajaxfileupload.js+springMVC实现无刷新文件上传
- SpringMVC+uploadify3.2.1版实现附件上传功能(直接可以使用)
- springmvc + ajaxfileupload 实现异步上传文件(图片)
- SpringMVC+ajaxFileUpload 兼容IE浏览器实现异步上传图片
- springmvc+easyui+fileupload实现图片上传
- springmvc+jquery+ajaxfileupload.js实现带有文本域的文件上传
- MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传
- Bootstrap的fileinput插件实现多文件上传的方法
- springmvc + ajaxfileupload 实现异步上传文件(图片)