上传的封装
来源:互联网 发布:知乎 推荐最新的电影 编辑:程序博客网 时间:2024/05/17 10:52
本文章的好处在于可以用于多个浏览器使用,多个上传
XML文件配置
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8">
</bean>
封装类
package com.zxxy.bean;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
public class upLoad {
public static void getUpload(List<MultipartFile> mlist,HttpServletRequest req,String newsuppId,User u ){
String path=req.getServletContext().getRealPath("/actter");//得到服务器端地址
int i1=0;
for(MultipartFile mult:mlist){//MultipartFile自带解析方法
String oldeName=mult.getOriginalFilename();//得到老名字
if(oldeName!=null&&!"".equals(oldeName)){
//修改后的名字=毫秒值+原来的老名字
String newName=System.currentTimeMillis()+oldeName;//新名字,避免名字重复所以取时分秒
int xiabiao=oldeName.lastIndexOf(".");//截取字符串
//得到后缀(三元运算符也可以分开写)
String suffix=xiabiao>0?oldeName.substring(xiabiao+1):"";
// if(xia>0){
// suffix=file.substring(xia+1);
// }else {
// suffix="";
// }
String realPath=path+"actter/"+getRiQi()+newName;
String newRealPath=path+"actter/"+getRiQi();
File f1=new File(newRealPath);
f1.getParentFile().mkdirs();//创建文件夹(多个上传)
// f1.getParentFile().mkdir();单个文件夹
Actter ac=new Actter();
ac.setOldname(oldeName);
ac.setSavename(newName);
ac.setAdddate(new Date());
ac.setSavepath(newRealPath);
try {
InputStream is=mult.getInputStream();
OutputStream os=new FileOutputStream(newRealPath);
byte[] bys=new byte[2048];
int len=0;
while((len=is.read(bys))!=-1){
os.write(bys, 0,len);
}
os.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static String getRiQi(){
Calendar calendar=Calendar.getInstance();
StringBuffer sb=new StringBuffer();
sb.append(calendar.get(Calendar.YEAR)).append("/");
sb.append(calendar.get(Calendar.MONTH)+1).append("/");
sb.append(calendar.get(Calendar.DATE)).append("/");
return sb.toString();
}
}
Controller
Service层
public interface ActterService {
//添加附件
public boolean addActter(Actter a);
public List<Actter> findActter();
// //通过id找到对应的所有附件
public Actter findActterById(int id);
// //通过id找到对应的附件对象
// public Actter findActter(int id);
- 上传的封装
- 封装的上传文件
- 封装过的文件上传方法
- 基于Phalcon的文件上传封装
- 对于httpclient上传文件的封装
- 封装原生的文件上传类
- PHP 封装自己的图片上传类
- 封装QNetworkAccessManager实现Ftp的上传
- PHP单文件上传原理及上传函数的封装
- PHP实现单文件上传、多个单文件上传、多文件上传的过程化封装
- 自己封装的一个ASP.NET上传文件的方法
- 关于AFN的POST请求,图片上传的二次封装
- 简单的封装一个批量上传的控件
- PHP上传文件封装
- flex图片上传(封装)
- swfupload上传方法封装
- PHP封装上传类
- 上传组件uploadify封装
- 迪士尼狮子大开口要分院线70%的票房,好莱坞的电影票房究竟是如何分账的?
- mysql分组多个数据计算
- 11.10学习心得
- ScrollView嵌套两个RecyclerView 导致滑动卡顿不流畅的原因
- GO语言Error
- 上传的封装
- 今日头条的三笔资本动作 ,让另一个娃娃脸傅盛的账上多了3亿美金
- 二.Snoopy采集(斗牛)
- JAVA中String对象涉及到的面试题
- 讯连科技创意导演组合包5官方破解版下载 | 含创意导演组合包5破解补丁包
- android在java代码中修改控件的位置
- struts2中的拦截器详解以及拦截器与过滤器的区别
- java中static的作用
- Python提取数字图片特征向量