javaSSM 单个文件+可选多个文件上传和下载

上传:

jsp:

<form action="onefile" method="post" enctype="multipart/form-data">

<p>单文件:

<input type="file" name="fileTest"><br/>

<p>多文件:

<input type="file" name="fileList" multiple>



<input type="submit" value="提交">

</form>

controller:

@RequestMapping("/insertT")//添加 实现单文件和多文件上传//MultipartFile file

public String insertT(MultipartHttpServletRequest request,Trainingtask trainingtask){

String originalFilename1=new String();

List<MultipartFile> fileList1 = request.getFiles("fileTest");

if (fileList1.size()>0) {

//遍历文件列表

Iterator<MultipartFile> fileTte = fileList1.iterator();

while (fileTte.hasNext()) {

//获得每一个文件

MultipartFile multipartFile = fileTte.next();

//获得原文件名

originalFilename1= multipartFile.getOriginalFilename();

String realPath=request.getSession().getServletContext().getRealPath("/upload/tongzhi");

File dir = new File(realPath);

if(!dir.exists()){

dir.mkdirs();

}

String filePath=realPath+"/"+originalFilename1;

System.out.println("filePath:"+filePath);

//保存文件

File dest = new File(filePath);

if(!(dest.exists())){

try {

multipartFile.transferTo(dest);

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("_------------------------------------------------");

}

}

StringBuffer originalFilename =new StringBuffer();

List<MultipartFile> fileList = request.getFiles("fileList");

if (fileList.size()>0) {

//遍历文件列表

Iterator<MultipartFile> fileTte = fileList.iterator();

while (fileTte.hasNext()) {

//获得每一个文件

MultipartFile multipartFile = fileTte.next();

//获得原文件名

String originalFilename2= multipartFile.getOriginalFilename();

originalFilename.append(originalFilename2);

originalFilename.append(",");

System.out.println("originalFilename:"+originalFilename);

String realPath=request.getSession().getServletContext().getRealPath("/upload/renwu");

File dir = new File(realPath);

if(!dir.exists()){

dir.mkdirs();

}

String filePath=realPath+"/"+originalFilename2;

System.out.println("filePath:"+filePath);

//保存文件

File dest = new File(filePath);

if(!(dest.exists())){

try {

multipartFile.transferTo(dest);

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("_------------------------------------------------");

}

}

trainingtask.setTrainingnotice(originalFilename1);

originalFilename.deleteCharAt(originalFilename.length() - 1);

trainingtask.setTrainingmaterials(originalFilename.toString());

trainingtaskDao.insert(trainingtask);

return "fbpx";

}


 

下载:

点击下载会进入到这个控制器并返回到如下页面并且能够下载了

@RequestMapping("/listFile")

public String listFile(HttpServletRequest request,

HttpServletResponse response ,Model model) {

String[] selectadress = trainingtaskDao.selectadress();

request.setAttribute("selectadress", selectadress);

return "listFile";

}

jsp:

<c:forEach var="me" items="${selectadress }">

${me}<a href="downT?filename=${me}">下载</a><br/>

</c:forEach>

<input type="button" value="返 回" onclick="history.go(-1)"/>

再次点击下载会跳入下面的控制器

@RequestMapping("/downT")

public void Down(HttpServletRequest request,HttpServletResponse response){

String fileName=request.getParameter("filename") ;

if(fileName!=null){

String realPath=request.getSession().getServletContext().getRealPath("/upload/tongzhi");//tomcat的WebRoot下的路径

File file = new File(realPath,fileName);

if(file.exists()){

response.setContentType("multipart/form-data;application/octet-stream;charset=utf-8");// 设置强制下载不打开

fileName = fileName.replaceAll("\\+","%20");

response.addHeader("Content-Type", "text/html; charset=utf-8");

try {

response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"ISO-8859-1"));

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

}

byte[] buffer=new byte[1024];

FileInputStream fis=null;

BufferedInputStream bis=null;

try {

fis=new FileInputStream(file);

bis=new BufferedInputStream(fis);

OutputStream os=response.getOutputStream();

int i=bis.read(buffer);

while (i!=-1) {

os.write(buffer, 0, i);

i=bis.read(buffer);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

if(bis!=null){

try {

bis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(fis != null){

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

}



猜你喜欢

转载自blog.csdn.net/weixin_40778442/article/details/80204890