关于Android客户端与Tomcat服务器的文件上传
2013-05-13 16:22
351 查看
首先是引包,Android客户端需加httpmime-4.1.2.jar
,Server端添加
这两个包,
下面直接上代码,
Android客户端文件的上传,用到网络传输,使用异步上传:
在Oncreate里调用:
服务器端代码:
,Server端添加
这两个包,
下面直接上代码,
Android客户端文件的上传,用到网络传输,使用异步上传:
class Send2ServerTask extends AsyncTask<Void, Void, Void> { @Override protected void onPostExecute(Void result) { String path=server_url+"files/test.jpg"; AsyncImageLoader2 loader=new AsyncImageLoader2(); loader.setOnCompleteListener(new CompleteCallback() { @Override public void onComplete(Bitmap drawable) { img.setImageBitmap(drawable); } }); loader.load(MainActivity.this, path); } @Override protected Void doInBackground(Void... params) { try { String url = new StringBuilder(server_url).append( "upload").toString(); HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(url); MultipartEntity mEntity = new MultipartEntity(); String path="mnt/sdcard/Pictures/test.jpg"; if (path != null) { mEntity.addPart("photo", new FileBody(new File(path))); } mEntity.addPart("text", new StringBody("文件上传文本测试", Charset.forName("UTF-8"))); post.setEntity(mEntity); HttpResponse response = httpClient.execute(post); String serverResponse = EntityUtils.toString(response .getEntity()); JSONObject obj = null; Message msg = new Message(); msg.what = SHOW_TOAST; if (serverResponse != null) { obj = new JSONObject(serverResponse); if (obj.getString("fail") != null && !obj.getString("fail").equals("")) { msg.obj = obj.getString("fail"); } else if (obj.getString("success") != null && obj.getString("success").equals("SUCCESS")) { msg.arg1 = 1; msg.obj = "上传成功!"; } mHandler.sendMessage(msg); } else { msg.obj = "上传失败!"; mHandler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = SHOW_TOAST; msg.obj = "上传失败!"; mHandler.sendMessage(msg); } return null; } } Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SHOW_TOAST: Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show(); break; } } };
在Oncreate里调用:
findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Send2ServerTask task=new Send2ServerTask(); task.execute(); } });
服务器端代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); boolean isHaveData=ServletFileUpload.isMultipartContent(request); JSONObject obj=new JSONObject(); PrintWriter out=response.getWriter(); if (isHaveData) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List items = upload.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // 普通文本信息处理 String paramName = item.getFieldName(); if("text".equals(paramName)){ System.out.println("text:"+item.getString()); } } else { // 上传文件信息处理 String fileName = item.getName(); byte[] data = item.get(); String filePath =null; File file = new File(getServletContext().getRealPath("/files")); if (!file.exists()) file.mkdirs(); filePath = file.getPath() + "/" + fileName; FileOutputStream fos = new FileOutputStream(filePath); fos.write(data); fos.close(); } } //obj=JSONObject.fromObject((Object)"上传成功!"); } catch (FileUploadException e) { e.printStackTrace(); //obj=JSONObject.fromObject((Object)"上传失败!"); } } //out.println(obj.toString()); out.flush(); out.close();
相关文章推荐
- Android客户端关于文件的上传到服务器
- (Android)JavaSocket编程,文件上传到服务器,客户端Android,服务器端J2SE
- Android客户端上传数据到服务器:可以上传简单的表单,也可以方便的上传带有附件的文件
- Android开发 基于HttpComponent4.3.3实现文件上传至tomcat服务器(基于struts框架)
- 关于android在TOMCAT服务器下载文件名带中文的文件的编码问题
- android手机客户端上传文件,java servlet服务器端接收并保存到服务器
- 【Android】Android客户端使用okhttp上传文件php服务器
- Android使用Https协议与Tomcat服务器进行文件上下传,并将上传的文件上传至HDFS
- android上传大文件到服务器客户端和服务器端代码
- Android上传文件,客户端+服务器源码
- android手机客户端上传文件,java servlet服务器端接收并保存到服务器
- 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)
- Android文件上传至tomcat,服务端+客户端示例代码
- android手机客户端上传文件,java servlet服务器端接收并保存到服务器
- java(android)客户端post方式上传多图片至服务器
- Android作为服务器通过USB使用Socket协议向PC客户端发送文件
- Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
- 关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题
- Android上传文件到Web服务器,PHP接收文件
- Tomcat配置虚拟路径,使上传文件与服务器分离