手机APP实现断点续传功能,

本文介绍了一种从服务器下载已存在文件的方法,使用了SpringMVC框架的@RequestMapping注解处理请求,通过RandomAccessFile读取文件,并将文件内容通过ServletOutputStream发送到客户端。
摘要由CSDN通过智能技术生成
/** 
     * 下载服务器已存在的文件 
     *  
     * @param request 
     * @param response 
     * @param proposeFile 
     * @throws IOException 
     * @throws FileNotFoundException 
     */  
	@Value("${uploadDir}")
	String path;
	@RequestMapping(value="/app/downLoadExists")
    private void downloadExistsFile(HttpServletRequest request,  
            HttpServletResponse response,String attachmentId,long pos) throws IOException,  
            FileNotFoundException {  
    	try {
			Attachment attachment=service.getInfoById(attachmentId);
			//SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
			String apkPath=path+File.separator+"attachment"+File.separator+attachment.getEntityName()+File.separator+attachment.getCreateDate()+File.separator+attachment.getAttachmentName();
			RandomAccessFile raf=new RandomAccessFile(new File(apkPath),"r");
			raf.seek(pos);//当前文件的开始位置
			// 下载  
			ServletOutputStream out = response.getOutputStream();  
			BufferedOutputStream bufferOut = new BufferedOutputStream(out);  
     
			byte[] buffer = new byte[1 * 1024];  
			int length = 0;  
			while ((length = raf.read(buffer, 0, buffer.length)) != -1) {  
			    bufferOut.write(buffer, 0, length);  
			}  
			bufferOut.flush();  
			bufferOut.close();  
			out.close();  
			raf.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值