首先,在项目文件下建立一个文件夹(红框框中的就是 我建的)
然后,在applicationContext.xml里配置对该文件添加静态资源访问权限。
最后就是撸代码了
前端代码 jQuery
function uplaodsbtpxz(id,obj){
var file = id;
var gamefile = document.querySelector("#"+id).value;
if(!gamefile){
layer.alert('请选择文件!');
return false;
}
$.ajaxFileUpload({
url:'${pageContext.request.contextPath}/uploadsbtp?projectId='+projectId + "&filetype=sbtp" ,
type:"post",
secureuri:false,
fileElementId:file,
dataType:"text",
success:function(result) {
console.log(result);
if(result != "上传失败"){
layer.alert("上传成功",{ icon: 1, closeBtn: 0 }, function(index){
var json = JSON.parse(result);
$(obj).next().attr("value", json.filecode);
$(obj).next().next().attr("value", json.filename);
$(obj).next().next().next().text(json.filename);
$(obj).next().next().next().next().attr("value", json.fileurl);
layer.close(index);
})
}
},error : function(){
alert(111);
}
})
}
前端样式
<button type="button" class="uploads" onclick="uplaodsbtpxz('filesbtp',this)">上传</button>
<input type="hidden" class="faciltyimg" name="faciltyimg" />
<input type="hidden" class="facilityimgname" name="facilityimgname" />
<a class="yulanxz" onclick="yulanxz(this)"></a>
<input type="hidden" class="url" name="url" />
后端接口
@ResponseBody
@RequestMapping(value="/uploadsbtp",method=RequestMethod.POST,produces = "text/html; charset=utf-8")
public String uploadsbtp(HttpServletResponse response,HttpServletRequest request, ModelMap model,User2019 user,@RequestParam String projectId,@RequestParam String filetype) throws Exception {
System.out.println("开始");
Calendar c = Calendar.getInstance();
String path = request.getSession().getServletContext().getRealPath("JxwEquipment");
SystemConfig config = new SystemConfig();
String fileNames = "";
String maxsize="3000000";
String suffix="JPG,GIF,PNG,TIF,DOC,DOCX,PDF,RAR,ZIP";
maxsize = config.get("fgw.attachment.maxsize");
suffix=config.get("fgw.attachment.suffix");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "plain", Charset.forName("UTF-8")));
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if(multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
Iterator<String> iter = multiRequest.getFileNames();
if(iter.hasNext()) {
MultipartFile file = multiRequest.getFile(iter.next());
String fileName = file.getOriginalFilename();
String str = fileName;
String[] strs = str.split("\\.");
Integer year = c.get(Calendar.YEAR);
Integer month = c.get(Calendar.MONTH);
Integer date = c.get(Calendar.DATE);
Integer hour = c.get(Calendar.HOUR_OF_DAY);
Integer minute = c.get(Calendar.MINUTE);
Integer second = c.get(Calendar.SECOND);
fileNames = year.toString() + month.toString() + date.toString() + hour.toString() + minute.toString() + second.toString() + "." + strs[1].toString();
File targetFile = new File(path, fileNames);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
file.transferTo(targetFile);
Fileall fileall = new Fileall();
fileall.setFilename(fileName);
fileall.setFilecode(UUID.randomUUID().toString());
fileall.setProjectId(projectId);
fileall.setFiletype(filetype);
fileall.setFileurl("/JxwEquipment/" + fileNames);
boolean judge = ((fileallmapper.insertFileall(fileall) > 0)? true : false);
if(judge) {
String json = JSONObject.fromObject(fileall).toString();
return json;
}else {
return "上传失败";
}
} catch (Exception e) {
e.printStackTrace();
}
String scheme = request.getScheme();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
String webappRootUrl = scheme + "://" + serverName + ":" + serverPort;
}
}
return "上传失败";
}