Ⅰ 如何在struts2中结合HttpClient进行文件上传
拦截器增加file拦截器页面写个<input type="file" name="upload"/>后台action里定义一个upload成员变量,并鞋号getter和setter方法文件直接就映射到action的upload属性里了,主要是要配置上file拦截器,basicStack是没有file拦截器的,defaultStack里包括了file拦截器
Ⅱ HTTPclient使用MultipartEntity怎么上传文件
你先搞清楚 HTTPclient 是做什么用的HTTPclient 的作用是在 jsp 中模拟一个浏览器,即 HTTP 协议的客户端(client)专你的后台代码是属将你本地服务器上的文件像浏览器那样上传到目标服务器于是 new File("C:\\1.txt") 的问题就可以解决了吧?C:\\1.txt 是你本地服务器中的文件,当然文件名是你自己定的至于 multipart/form-data 声明,那是由 HttpPost 的参数 MultipartEntity 自动加上的
Ⅲ AsyncHttpClient这个框架有用过的吗,上传文件时如何获得进度
AreaHttpUtil.post(URL, params, new JsonHttpResponseHandler() {@Overridepublic void onSuccess(int statusCode, JSONObject response) {super.onSuccess(statusCode, response);Toast.makeText(AreaApplication.context, "上传成功", Toast.LENGTH_SHORT).show();}@Overridepublic void onFailure(int statusCode, Header[] headers,String responseBody, Throwable e) {super.onFailure(statusCode, headers, responseBody, e);Toast.makeText(AreaApplication.context, "上传失败", Toast.LENGTH_SHORT).show();}public void onProgress(int current, int count) {System.out.println("current " + current);System.out.println("total " + count);upload.setProgress((int) (current / (float) count * 100));upload.setText(current / 1024 + "/" + count / 1024 + "K");Message message = new Message();message.obj = upload;message.what = 1;GlobalHandler.getHandler().sendMessage(message);}});
Ⅳ 关于AsyncHttpClient框架的post 提交表单上传文件怎么弄
用开源项目Asynchttpclient的GET_POST访问网络 * 使用GET方式提交数据: //1、创建一个浏览器对象 AsyncHttpClient client = new AsyncHttpClient(); //2、发送一个GET请求 client.get(path, new AsyncHttpResponseHandler() { /** * 请求处理成功后调用这个方法 * statusCode 响应码 200 404 503 * headers 响应头信息 * responseBody 服务器返回的响应数据(如:登陆成功、失败等) */ @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { Toast.makeText(MainActivity.this, new String(responseBody), 0).show(); }
Ⅳ HttpClient 中的putMethod上传100M的文件怎么设置,我上传小的不报错。20M就报java heap space 异常。
把大文件切成小文件,每次传上去的不要超过限制就行了。下载的时候,再把他们拼起来。
Ⅵ android的自带的httpClient 怎么上传文件
Android上传文件到服务端可以使用HttpConnection 上传文件,也可以使用Android封装好的HttpClient类。当仅仅上传文件可以直接使用httpconnection 上传比较方便快捷。 1、使用HttpConection上传文件。将文件转换成表单数据流。主要的思路就自己构造个http协议内容,服务端解析报文获得表单数据。代码片段: [java] view plainHttpURLConnection con; try { con = (HttpURLConnection) url.openConnection(); con.setConnectTimeout(C_TimeOut); /* 允许Input、Output,不使用Cache */ con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); /* 设置传送的method=POST */ con.setRequestMethod("POST"); /* setRequestProperty */ con.setRequestProperty("Connection", "Keep-Alive"); con.setRequestProperty("Charset", "UTF-8"); con.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary); /* 设置DataOutputStream */ DataOutputStream ds = new DataOutputStream(con.getOutputStream()); FileInputStream fStream = new FileInputStream(file); /* 设置每次写入1024bytes */ int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; /* 从文件读取数据至缓冲区 */ while((length = fStream.read(buffer)) != -1) { /* 将资料写入DataOutputStream中 */ ds.write(buffer, 0, length); } fStream.close(); ds.flush(); ds.close(); 可以参考 ①《在 Android 上通过模拟 HTTP multipart/form-data 请求协议信息实现图片上传》 (http://bertlee.iteye.com/blog/1134576)。 ②《关于android Http访问,上传,用了三个方法 》 2、使用Android HttpClient类上传参数。下面我在网上搜到得代码,忘记出处了[java] view plainprivate static boolean sendPOSTRequestHttpClient(String path, Map<String, String> params) throws Exception { // 封装请求参数 List<NameValuePair> pair = new ArrayList<NameValuePair>(); if (params != null && !params.isEmpty()) { for (Map.Entry<String, String> entry : params.entrySet()) { pair.add(new BasicNameValuePair(entry.getKey(), entry .getValue())); } } // 把请求参数变成请求体部分 UrlEncodedFormEntity uee = new UrlEncodedFormEntity(pair, "utf-8"); // 使用HttpPost对象设置发送的URL路径 HttpPost post = new HttpPost(path); // 发送请求体 post.setEntity(uee); // 创建一个浏览器对象,以把POST对象向服务器发送,并返回响应消息 DefaultHttpClient dhc = new DefaultHttpClient(); HttpResponse response = dhc.execute(post); if (response.getStatusLine().getStatusCode() == 200) { Log.i("http", "httpclient"); return true; } return false; } 3、使用httpClient上传文字信息和文件信息。使用httpClient上传文件非常的方便。不过需要导入apache-mime4j-0.6.jar 和httpmime-4.0.jar两个.jar包。 [java] view plain// 封装请求参数 MultipartEntity mpEntity = new MultipartEntity(); if (params != null && !params.isEmpty()) { for (Map.Entry<String, String> entry : params.entrySet()) { StringBody par = new StringBody(entry.getValue()); mpEntity.addPart(entry.getKey(), par); } } // 图片 if (!imagepath.equals("")) { FileBody file = new FileBody(new File(imagepath)); mpEntity.addPart("photo", file); } // 使用HttpPost对象设置发送的URL路径 HttpPost post = new HttpPost(path); // 发送请求体 post.setEntity(mpEntity); // 创建一个浏览器对象,以把POST对象向服务器发送,并返回响应消息 DefaultHttpClient dhc = new DefaultHttpClient(); HttpResponse response = dhc.execute(post); FileBody类可以把文件封装到表单中,实现附件的上传。 关于httpClient上传文件可以参考链接: http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76721&page=1 需要用的的ja下载地址r:http://download.csdn.net/detail/china1988s/3791514参考: ①《在 Android 上通过模拟 HTTP multipart/form-data 请求协议信息实现图片上传》 (http://bertlee.iteye.com/blog/1134576)。 ②《关于android Http访问,上传,用了三个方法 》
Ⅶ httpclient 怎么实现多文件上传 c/s java
虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。以下是简单的post例子:Stringurl="bbslogin2.php";PostMethodpostMethod=newPostMethod(url);//填入各个表单域的值NameValuePair[]data={newNameValuePair("id","youUserName"),newNameValuePair("passwd","yourPwd")};//将表单的值放入postMethod中postMethod.setRequestBody(data);//执行postMethodintstatusCode=httpClient.executeMethod(postMethod);//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发//301或者302if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){//从头中取出转向的地址HeaderlocationHeader=postMethod.getResponseHeader("location");Stringlocation=null;if(locationHeader!=null){location=locationHeader.getValue();System.out.println("Thepagewasredirectedto:"+location);}else{System.err.println("Locationfieldvalueisnull.");}return;}详情见:/developerworks/cn/opensource/os-httpclient/
Ⅷ 如何接收httpclient 文件上传
一般的情况下我们都来是使用Chrome或者其他浏自览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据、文件上传下载等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如H