通过multiparthttpservletrequest 对象来接受前端上传的文件
public static map《string, object》 upload(httpservletrequest request) throws ioexception{
//文件上传的请求
multiparthttpservletrequest mrequest = (multiparthttpservletrequest) request;
//获取请求的参数
map《string, multipartfile》 filemap = mrequest.getfilemap();
//项目的绝对路径 request.getsession().getservletcontext().getrealpath()这个是得到项目的绝对地址
string ctxpath = request.getsession().getservletcontext().getrealpath(“/”)
+ fileoperateutil.filedir;
file file = new file(ctxpath);
if (!file.exists()) {
file.mkdir();
}
map《string, object》 result = new hashmap《string, object》();
iterator《map.entry《string, multipartfile》》 it = filemap.entryset().iterator();
//用hasnext() 判断是否有值,用next()方法把元素取出。
while(it.hasnext()){
map.entry《string, multipartfile》 entry = it.next();
multipartfile mfile = entry.getvalue();
if(mfile.getsize() != 0 && !“”.equals(mfile.getname())){
write(mfile.getinputstream(), new fileoutputstream(ctxpath+mfile.getoriginalfilename()));
result.put(mfile.getname(), mfile.getoriginalfilename());
}
}
return result;
}
下载文件
public static void download(httpservletrequest request,
httpservletresponse response, string storename, string contenttype,
string realname) throws exception {
response.setcontenttype(“text/html;charset=utf-8”);
request.setcharacterencoding(“utf-8”);
bufferedinputstream bis = null;
bufferedoutputstream bos = null;
string ctxpath = request.getsession().getservletcontext()
.getrealpath(“/”)
+ “你的存储的地址”;
string downloadpath = ctxpath + storename;
long filelength = new file(downloadpath).length();
response.setcontenttype(contenttype);
response.setheader(“content-disposition”, “attachment; filename=”
+ new string(realname.getbytes(“utf-8”), “iso8859-1”));
response.setheader(“content-length”, string.valueof(filelength));
bis = new bufferedinputstream(new fileinputstream(downloadpath));
bos = new bufferedoutputstream(response.getoutputstream());
byte[] buff = new byte[2048];
int bytesread;
while (-1 != (bytesread = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesread);
}
bis.close();
bos.close();
}
苹果位列中国区手机品牌销量第三 2018年3月及Q1中国畅销手机市场分析报告
英特尔实感F200技术具有遮挡提示功能
基于深度学习的目标检测技术比作一场“热兵器革命”
台积电2纳米晶圆制造将采用GAAFET架构的EDA软件
canfd通信tdcv实测值受总线长度影响吗
springMVC后台接受前端上传的文件及下载文件
努比亚Z17S发布会倒计时:努比亚Z17S外观、渲染图、配置亮点提前看
医疗废物在线管理的好处
PCB布局布线的相关基本原理和设计技巧100问
RFID消防应急物资智能仓储管理系统简介
风光一时的智能手环,似乎已经淡出人的视野
一文知道1N4007和SM4007的区别
2G信号PCB设计注意点
国产传感器步入创新发展的关键时期?
车联网下的汽车会是怎样的
基于STM8A和TI/ROHM的车身中央控制系统方案
美光即将量产第四代3D NAND存储器 层数达到128层
OCT-100在线检测系统
BS2571接地电阻测试仪的工作原理及性能特点
中国联通成立5G创新中心,提前布局5G,推动5G在垂直行业中的发展