上传文件到MySQL数据库
后端
@Login
@ResponseBody
@RequestMapping(value="/uploadfj",produces="text/html; charset=utf-8")
@Transactional
public String uploadxdwlfile(HttpServletResponse response,HttpServletRequest request, ModelMap model,@RequestParam String projectId, @RequestParam String filetype ,@RequestParam String filecode) throws Exception{
XdwlzxfjFile xdwlzxfjFile = new XdwlzxfjFile(); //接受文件的Javabean
xdwlzxfjFile.setFilecode(filecode); //文件的唯一标识 uuid
xdwlzxfjFile.setFlietype(filetype); //文件的类型
xdwlzxfjFile.setProjectid(projectId); // 文件关联的主键id
if(materialflowMapper.getXdwlzxfjFile(xdwlzxfjFile) != null) {
materialflowMapper.deleteXdwlzxfjFile(xdwlzxfjFile);
}
SystemConfig config = new SystemConfig();
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());
if(file != null) {
String myFileName = file.getOriginalFilename();//文件名
Long size=file.getSize();
Long maxsize1=Long.parseLong(maxsize);
String [] suffixs=suffix.split(",");
boolean bsuffix=true;
for(String item:suffixs){
String as=myFileName.toUpperCase();
int i=as.indexOf(item.toString());
if(i>-1){
bsuffix=false;
break;
}
}
if(bsuffix){
String meg="文件支持类型为"+suffix+"!";
return meg;
}else if(size>maxsize1){
String meg="文件大小不能超过"+maxsize1/1024/1024+"M!";
return meg;
}else if(file.getOriginalFilename().length()>50){
String meg="文件名称长度不能超过50个字符";
return meg;
}
if(myFileName.trim() !=""){
xdwlzxfjFile.setFilename(myFileName); //文件名字
xdwlzxfjFile.setFilecode(UUID.randomUUID().toString()); // 文件的标识
xdwlzxfjFile.setFilecontent(FileCopyUtils.copyToByteArray(file.getInputStream())); //文件本身
String count = ((materialflowMapper.insertXdwlzxfjFile(xdwlzxfjFile) > 0)? "上传成功" : "上传失败");
return count;
}
}
}
}
return null;
}
javabean
/**
*
*/
package com.netmarch.sbgl.sfgw.bean;
/**
* @author zxj
*
* 2019年8月21日-上午9:14:55
*/
public class XdwlzxfjFile {
private int id;
private String projectid;
private String filecode;
private String filename;
private byte[] filecontent; //在mysql数据库中对应的字段属性是 mediumblob
private String flietype;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProjectid() {
return projectid;
}
public void setProjectid(String projectid) {
this.projectid = projectid;
}
public String getFilecode() {
return filecode;
}
public void setFilecode(String filecode) {
this.filecode = filecode;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public byte[] getFilecontent() {
return filecontent;
}
public void setFilecontent(byte[] filecontent) {
this.filecontent = filecontent;
}
public String getFlietype() {
return flietype;
}
public void setFlietype(String flietype) {
this.flietype = flietype;
}
}
前段使用ajaxfileupload.js ,网上很多,自己下载一个
</head>
<body>
<input type="file" id="file" name="file" />
<input type="button" value="上传" onclick="uplaod()"/>
<script>
function uplaod(){
var projectId = "11111";
var filetype = "fp";
var filecode = "aaa";
var url = '/pndpcmater/uploadfj?projectId=' + projectId +'&filetype=' +filetype + '&filecode=' + filecode;
var gamefile = document.querySelector("#file").value;
var file = "file";
if(!gamefile){
layer.alert('请选择文件!');
return false;
}
$.ajaxFileUpload({
url:url,
type:"post",
secureuri:false,
fileElementId:file,
dataType:"text",
success:function(result) {
alert(上传成功);
/* layer.alert(result,function(index){
layer.closeAll();
location.reload();
}); */
},error : function(){
alert("error");
}
});
}
</script>
</body>
</html>