Android开发随想(2)

              上次我们的框架进行到文件上传的部分:

               话不多说:看代码

        /**
	 * 文件上传采用MultipartPostMethod
	 * @param url   服务器地址
	 * @param files  目标文件
	 * @notice 支持多文件上传
	 * @return JSON数据
	 * @throws Exception 
	 */
	@SuppressWarnings("deprecation")
	public static String fileUpload(String url,List<File> files) throws Exception{
		String response = null;
		if(null != url && !"".equals(url)){
			if(null!=files && files.size()>0){
				mHttpClient = new HttpClient();
				mHttpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
				mHttpClient.getParams().setUriCharset("UTF-8");
				MultipartPostMethod method = new MultipartPostMethod(url);
				
				//处理文件
				for(File file:files){
					//method.addParameter(file.getName(), file);
					method.addParameter("content", file);
				}
				int status = mHttpClient.executeMethod(method);
				if(status==HttpStatus.SC_OK){
					response = convertResponse(method.getResponseBodyAsStream());
				}
			}
		}
		return response;
	}

上面的方法中使用的是

MultipartPostMethod,它自己本身是针对文件上传所做的,但是已经有点过时了,可用,推荐使用的是Post进行的文件上传

        /**
	 * 文件上传采用PostMethod
	 * @param url   服务器地址
	 * @param files  目标文件
	 * @notice 支持多文件上传
	 * @return JSON数据
	 * @throws Exception 
	 */
	public static String fileUploadPost(String url,List<File> files) throws Exception{
		String response = null;
		if(null != url && !"".equals(url)){
			if(null!=files && files.size()>0){
				mHttpClient = new HttpClient();
				mHttpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
				mHttpClient.getParams().setUriCharset("UTF-8");
				PostMethod postMethod = new PostMethod(url);				
				
				Part[] parts = new FilePart[files.size()];
				for(int i=0;i<files.size();i++){
					parts[i] = new FilePart(files.get(i).getName(), files.get(i).getAbsoluteFile());
				}				
				
				RequestEntity requestEntity = new MultipartRequestEntity(parts, postMethod.getParams());
				postMethod.setRequestEntity(requestEntity);
				int status = mHttpClient.executeMethod(postMethod);
				if(status==HttpStatus.SC_OK){
					response = convertResponse(postMethod.getResponseBodyAsStream());
				}
			}
		}
		return response;
	}

上面针对已经过时的方法做了改进!使用Post方式进行文件的上传


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值