1.创建一个Dynamic Web project工程,指定其服务器,我们这里用的是Tomcat7.0,新建index.jsp文件,其内容如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="Upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" ></br> <input type="submit" name="submit"></br> </form> </body> </html>
2.新建一个form action对应的Servlet。
/** * Servlet implementation class Upload */ @WebServlet("/Upload") @MultipartConfig(location="G:\\") //指定文件上传的地址这里是G盘 public class Upload extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Upload() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Part part = request.getPart("file"); part.write("dsa.jpg"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.write("upload success"); } }
到这里Web就已经配置完了,打开浏览器运行一遍
选择完文件并提交这文件就在本地的G盘下了,提交时,打开Google浏览器开发者工具查看header,即请求头信息,以助在后面Android客户端开发
设置连接请求时的参数对照
3.Android客户端创建一个UploadThread
package com.pt.http01; import android.util.Log; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; /** * Created by 韬 on 2016-05-14. */ public class UploadThread extends Thread{ private String url; private String filename; private static final String TAG = "UploadThread"; public UploadThread(String url,String filename){ this.url = url; this.filename = filename; } @Override public void run() { String boundary = "---------------------------7e02933960556"; String prefix = "--"; String end = "\r\n"; try { URL httpurl = new URL(url); HttpURLConnection conn = (HttpURLConnection) httpurl.openConnection(); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); DataOutputStream out = new DataOutputStream(conn.getOutputStream()); out.writeBytes(prefix + boundary + end); out.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + "dsa.jpg" + "\"" + end); FileInputStream inputStream = new FileInputStream(new File(filename)); byte[] data = new byte[1024*4]; int len = 0; while ((len = inputStream.read(data)) != -1){ out.write(data,0,len); } out.writeBytes(end); out.writeBytes(prefix + boundary + prefix + end); out.flush(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuffer sb = new StringBuffer(); String str; while((str = reader.readLine()) != null){ sb.append(str); } Log.i(TAG, "run: \"reponse\"" + sb.toString()); if (out != null){ out.close(); } if(reader != null){ reader.close(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
Android中通过HTTP协议实现网络通信文件上传案例!
使用android与javaWEB进行通信的例子,实现信息的基本传递及文件上传下载
利用get和post方式上传文件 还有与底层相关的socket通信
android端使用androidstudio2.0开发的,采用了xutils与web端进行网络通信。demo版本,所以界面很简单,只是简单的实现了功能。导进androidstudio应该是可以直接使用的。具体实现了手机选择相册图片或者拍照能预览...
实现android断点上传,socket通信机制,可以续传实现,学习上传代码功能之用
参考网上例子,由于http不支持大文件上传,采用TCP通信方式socket上传,client + server 支持断点续传
Android应用源码串口通信(JNI)例子.rar Android应用源码任务提醒源码.rar Android应用源码仿360手机助手首页浮动菜单.rar Android应用源码仿Iphone抖动效果Shake Icon.rar Android应用源码仿QQ分组列表修改版.rar ...
首先,需要明确一下http通信流程,Android目前提供两种http通信方式,HttpURLConnection和HttpClient,HttpURLConnection多用于发送或接收流式数据,因此比较适合上传/下载文件,HttpClient相对来讲更大更全能,但是...
FNSuperWeb 超级浏览器 基于腾讯X5内核 目前已有功能: 1、文件浏览(支持pdf/ppt/doc/excel/txt) ...文件上传(Android与JS通信) 文件下载 Android与JS交互 自定义交互(进度条、下拉回弹) 视频播放
FTP安卓版,可实现网内文件上传下载。
因为需要,参考文档资料和网上一些大神的作品,自己动手编写,经过android虚拟机,pc机,已经android平板mid测试,android版本在4.0以上。...本代码也有在本人博客中做详细说明,这里是打包整个工程文件上传
使用netty进行安卓端发送接收文字,并且附带发送图片功能,折腾了几天的netty总算有点眉目了,做下记录。...详细介绍:http://lison.cc/508.html github下载地址:https://github.com/LisonLiou/netty-learning.git
黑马程序员_8天快速掌握Android视频 总共67个视频教程,包括:02_搭建Android开发环境,03_创建与启动手机模拟器和学习使用ANDROID...HTTP协议实现文件上传,29_发送xml数据和调用webservice,30_多线程下载原理。。。
第17章 Android通信应用 444 17.1 电话应用开发 444 17.1.1 拨打电话功能 444 17.1.2 呼入电话状态 446 17.2 短信和彩信应用开发 450 17.2.1 Android内置的发送短信/彩信功能 450 17.2.2 自己编写发送文本内容...
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...
网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。
两台手机通过websocket进行建立全双工通信,利用热点进行文件传输
黑马程序员_8天快速掌握Android视频 总共67个视频教程,包括:02_搭建Android开发环境,03_创建与启动手机模拟器和学习使用ANDROID...HTTP协议实现文件上传,29_发送xml数据和调用webservice,30_多线程下载原理。。。
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...