




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java利用HttpURLConnection发送post请求上传文件文章分类:Java编程 在页面里实现上传文件不是什么难事,写个form,加上enctype = "multipart/form-data",在写个接收的就可以了,没什么难的,如果要用.HttpURLConnection来实现文件上传,还真有点搞头.:-) 1.先写个servlet把接收到的 HTTP 信息保存在一个文件中, 看一下 form 表单到底封装了什么样的信息。Java代码public void doPost(HttpServletRequest request, HttpServletRespo
2、nse response)throws ServletException, IOException /获取输入流,是HTTP协议中的实体内容ServletInputStream in=request.getInputStream();/缓冲区byte buffer=new byte1024;FileOutputStream out=new FileOutputStream("d:test.log");int len=sis.read(buffer, 0, 1024);/把流里的信息循环读入到file.log文件中while( len!=-1 )out.write
3、(buffer, 0, len);len=in.readLine(buffer, 0, 1024);out.close();in.close();来一个form表单。<form name="upform" action="upload.do" method="POST"enctype="multipart/form-data">参数<input type="text" name="username"/><br/>文件1<input t
4、ype="file" name="file1"/><br/>文件2<input type="file" name="file2"/><br/><input type="submit" value="Submit" /><br /></form>假如我参数写的内容是hello word,然后二个文件是二个简单的txt文件,上传后test.log里如下Java代码-7da2e536604c8Conten
5、t-Disposition: form-data; name="username"hello word-7da2e536604c8Content-Disposition: form-data; name="file1" filename="D:haha.txt"Content-Type: text/plainhahahahaha-7da2e536604c8Content-Disposition: form-data; name="file2" filename="D:huhu.txt"Conte
6、nt-Type: text/plainmessihuhu-7da2e536604c8-研究下规律发现有如下几点特征1.第一行是“ -7d92221b604bc ”作为分隔符,然后是“ rn ” 回车换行符。 这个7d92221b604bc 分隔符浏览器是随机生成的。2.第二行是Content-Disposition: form-data; name="file2" filename="D:huhu.txt"name=对应input的name值,filename对应要上传的文件名(包括路径在内),3.第三行如果是文件就有Content-Type: text
7、/plain;这里上传的是txt文件所以是text/plain,如果上穿的是jpg图片的话就是image/jpg了,可以自己试试看看。然后就是回车换行符。4.在下就是文件或参数的内容或值了。如:hello word。5.最后一行是-7da2e536604c8-,注意最后多了二个-;有了这些就可以使用HttpURLConnection来实现上传文件功能了Java代码 public void upload()List<String> list = new ArrayList<String>(); /要上传的文件名,如:d:haha.doc.你要实现自
8、己的业务。我这里就是一个空list.try String BOUNDARY = "-7d4a6d158c9" / 定义数据分隔线URL url = new URL("http:/localhost/JobPro/upload.do");HttpURLConnection conn = (HttpURLConnection) url.openConnection();/ 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.set
9、RequestMethod("POST");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");conn.setRequestProperty("Charsert", "UTF-8");conn.setReques
10、tProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);OutputStream out = new DataOutputStream(conn.getOutputStream();byte end_data = ("rn-" + BOUNDARY + "-rn").getBytes();/ 定义最后数据分隔线int leng = list.size();for(int i=0;i<leng;i+)String fname
11、= list.get(i);File file = new File(fname);StringBuilder sb = new StringBuilder();sb.append("-");sb.append(BOUNDARY);sb.append("rn");sb.append("Content-Disposition: form-data;name="file"+i+""filename=""+ file.getName() + ""rn");sb.
12、append("Content-Type:application/octet-streamrnrn");byte data = sb.toString().getBytes();out.write(data);DataInputStream in = new DataInputStream(new FileInputStream(file);int bytes = 0;byte bufferOut = new byte1024;while (bytes = in.read(bufferOut) != -1) out.write(bufferOut, 0, bytes);out.write("rn".getBytes(); /多个文件时,二个文件之间加入这个in.close();out.write(end_data);out.flush();out.close();/ 定义BufferedReader输入流来读取URL的响应BufferedReader reader = new BufferedReader(new InputStreamReade
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铑(Ⅲ)催化的C-H活化反应选择性合成异喹诺酮衍生物
- 2025年一般生产经营单位安全培训考试试题附参考答案(B卷)
- 2025日常安全培训考试试题及答案【各地真题】
- 2024-2025承包商入厂安全培训考试试题含答案【培优A卷】
- 2025年小学二年级班主任师生沟通计划
- 2025公司安全管理人员安全培训考试试题及答案(典优)
- 2024-2025公司、项目部、各个班组安全培训考试试题附完整答案(名校卷)
- 四年级美术创新教学计划设计
- 高校教师个人专业提升计划
- 英语教研组教材选用与评估计划
- 小学生汽车课件:汽车王国
- GB/T 21010-2007土地利用现状分类
- GB/T 1885-1998石油计量表
- 全国学生学宪法讲宪法知识竞赛题库及答案
- 临床药师培训理论试题含答案(呼吸专业)
- 家谱宗谱WORD模板
- 民俗学概论全套精美课件
- 应用文写作概述课件
- 危重症孕产妇交流课件:妊娠遇到主动脉夹层抢救成功病例分享
- 高中政治《增强“四个意识”做到“两个维护”》教学设计
- 山东省医院护理服务质量评价细则简介
评论
0/150
提交评论