图片的上传和下载

                                           实现图片的上传和下载

- 1.图片的上传

	/**
	 * @Description: 批量上传图片文件
	 * @author: qinzz
	 * @date: 2017年03月31日
	 * @return:String
	 */
	@ResponseBody
	@RequestMapping("/uploadImgList")
	public R uploadPictureList(@RequestParam(value="rtid",required=false)Integer rtid,
			@RequestParam(value="imgtype",required=false)Integer imgtype,
	        @RequestParam(value="uploadFile",required=false)MultipartFile[] uploadFile,
	        HttpServletRequest request, HttpServletResponse response){
		System.out.println("房型:"+rtid);
		System.out.println("图型:"+imgtype);
		System.out.println("========"+Arrays.toString(uploadFile));
	    File targetFile=null;
	    String msg="";//返回字符串
	    int code=1;
	    List imgList=new ArrayList();
	    int sum=0;
	    if (uploadFile!=null && uploadFile.length>0) {
	        for (int i = 0; i < uploadFile.length; i++) {
	        	System.out.println(uploadFile[i]);
	        	sum=sum+1;
	            String fileName=uploadFile[i].getOriginalFilename();//获取文件名加后缀
	            System.out.println(fileName);
	            if(fileName!=null&&fileName!=""){   
	                String returnUrl =RiShunConstant.PATH_ROOM_PICTURE;//存储路径,这个是你要把图片上传到那个位置如:D:\\rsimg\\或者项目部署的服务器时/usr/local/rsimg/都可以.
	                System.out.println(returnUrl);
	                String fileF = fileName.substring(fileName.lastIndexOf("."), fileName.length());//文件后缀
	                System.out.println(fileF);
	                fileName=rtid.toString()+imgtype.toString()+sum+fileF;//新的文件名
                    System.out.println(fileName);
	                File file1 =new File(returnUrl); 
	                //如果文件夹不存在则创建    
	                if(!file1 .exists()  && !file1 .isDirectory()){       
	                    file1 .mkdir();  
	                }
	                targetFile = new File(file1, fileName);
	                try {
	                	uploadFile[i].transferTo(targetFile);
	                   // msg=returnUrl+"/"+fileName;
	                    msg="上传成功";
	                } catch (Exception e) {
	                    e.printStackTrace();
	                    msg="上传失败";
	                }
	            }
	        }
	    }
		return R.ok(msg);               
	   
	}

- 2.图片的下载


	//图片下载
	@RequestMapping("/title_download")
	public void titleDownload(Integer rtId,Integer imgtype,HttpServletRequest request,HttpServletResponse response) throws IOException{
		 System.out.println("房型:"+rtId);
		 System.out.println("图型:"+imgtype);
		 int sum=0;
		 List<String> imgUrls=new ArrayList<String>();
		 for (int i = 1; i <101 ; i++) {
			    sum=sum+1;
				//1路径
			    String path=rtId.toString()+imgtype.toString()+sum+".jpg";//图片的名称如:211.jpg
			    String realpath=RiShunConstant.PATH_ROOM_PICTURE+path;//图片路径+图片名称:D:\\rsimg\\211.jpg
			    System.out.println(realpath);
				//2输入流
				File file = new File(realpath);
				if(file.exists()){
					String realpath1="file:///"+realpath;
					System.out.println(realpath1);
					imgUrls.add(realpath1);
				}else{
					break;
				}
			
		 }
		        try {
		            String downloadFilename = System.currentTimeMillis()+"_图片.zip";//文件的名称
		            downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");//转换中文否则可能会产生乱码
		            response.setContentType("application/octet-stream");// 指明response的返回对象是文件流
		            response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);// 设置在下载框默认显示的文件名
		            ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
		            String [] files =imgUrls.toArray(new String[imgUrls.size()]);
		            if(null != files && files.length > 0) {
		                for (int i = 0; i < files.length; i++) {
		                		System.out.println("====="+files[i]);
		                    	String substring3 = files[i].substring(files[i].length()-7);
		                    	System.out.println(substring3);
		                        URL url = new URL(files[i]);
		                        zos.putNextEntry(new ZipEntry(substring3));
		                        InputStream fis = url.openConnection().getInputStream();
		                        byte[] buffer = new byte[1024];
		                        int r = 0;
		                        while ((r = fis.read(buffer)) != -1) {
		                            zos.write(buffer, 0, r);
		                        }
		                        fis.close();
		                }
		            }
		            zos.flush();
		            zos.close();
		        } catch (UnsupportedEncodingException e) {
		        	e.getMessage();
		            System.out.println("下载图片出异常了");
		        } catch (IOException e) {
		            // TODO Auto-generated catch block
		        	e.getMessage();
		        	System.out.println("下载图片出异常了");
		        }
		 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值