java文件的上传与下载通用版

上传文件同用版

public void upload2(HttpServletRequest request , HttpServletResponse response){
        //创建一个通用的多部分解析器  
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        //判断 request 是否有文件上传,即多部分请求(即检查form中是否有enctype="multipart/form-data")
        if(multipartResolver.isMultipart(request)){
            //转换成多部分request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            //取得request中的所有input的name 
            Iterator<String> iter = multiRequest.getFileNames();
            while(iter.hasNext()){
                //取得一个input里面所有的上传文件  
                List<MultipartFile> list = multiRequest.getFiles(iter.next());
                for(MultipartFile file : list){
                    if(file != null){
                        //取得当前上传文件的文件名称 
                        String myFileName = file.getOriginalFilename();
                        //如果名称不为“”,说明该文件存在,否则说明该文件不存在  
                        if(myFileName.trim() != null){
                            //重命名上传后的文件名  
                            String saveName = UUID.randomUUID().toString() + myFileName.substring(myFileName.lastIndexOf("."));
                            //定义上传路径  
                            File localFile = new File("C:\\test\\",saveName);
                            try {
                                //保存
                                file.transferTo(localFile);
                            } catch (IllegalStateException e) {
                                e.printStackTrace();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }

            }
        }
    }

文件下载通用版

// 文件路径
		String filePath = basePath + fileName;

		try {
			File file = new File(filePath);
			if (file.exists()) {
				InputStream fis = new BufferedInputStream(new FileInputStream(
						filePath));
				byte[] buffer = new byte[fis.available()];
				fis.read(buffer);
				fis.close();
				// 清空response
				response.reset();
				// 设置response的Header
				response.addHeader("Content-Disposition","attachment;filename="
				+ new String(fileName.getBytes("iso8859-1"),"UTF-8"));
				
				response.addHeader("Content-Length", "" + file.length());
				OutputStream toClient = new BufferedOutputStream(
						response.getOutputStream());
				response.setContentType("application/octet-stream");
				toClient.write(buffer);
				toClient.flush();
				toClient.close();
			} else {
				String errorMsg = "没有找到文件,路径:" + filePath;
			}
		} catch (Exception e) {
			String errorMsg = "文件下载,出现异常:" + e.getMessage();
		}



猜你喜欢

转载自blog.csdn.net/qq_32711309/article/details/80000918