Android客户端多文件上传

在web开发中,多文件上传时是非常方便的,直接使用Http协议提交数据即可。格式如下:

   <FORM METHOD=POST ACTION="http://192.168.1.101:8083/upload/servlet/UploadServlet" enctype="multipart/form-data">
            <INPUT TYPE="text" NAME="name">
            <INPUT TYPE="text" NAME="id">
            <input type="file" name="imagefile"/>
            <input type="file" name="zip"/>
         </FORM>

但是在Android客户端中,如果文本和文件一起上传时就比较麻烦,需要对Http协议很熟悉才可以做到的。

一、HTTP协议

HTTP协议是一个很很复杂的过程,我们在做web开发时,底层其实都已经封装好了,可以使用即可,我们所需要做的就是对HTTP请求格式很熟悉。

HTTP协议分为请求方法URI协议/版本,请求头,请求体。

<span style="white-space:pre">	</span>GET/sample.jspHTTP/1.1                    //请求方法/请求路径/协议版本

<span style="white-space:pre">	</span>Accept:image/gif.image/jpeg,*/*
<span style="white-space:pre">	</span>Accept-Language:zh-cn
<span style="white-space:pre">	</span>Connection:Keep-Alive
<span style="white-space:pre">	</span>Host:localhost
<span style="white-space:pre">	</span>User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
<span style="white-space:pre">	</span>Accept-Encoding:gzip,deflate

<span style="white-space:pre">	</span>username=jinqiao&password=1234

这是一个完整的HTTP请求。

请求的协议头主要包括以下一些内容:

请求头和请求体中间有一个空格,这个空格表示请求头已经结束,下面的是请求体。

响应头:

这即为整个的HTTP请求。

二、Android中的多文件上传

Android中使用HTTP GET或者POST方法提交数据在前文已经介绍过了。

代码在struts上传文件一文中已经贴出来了。

在代码中 ,我们需要自己动手完整的构造出整个HTTP请求的格式。

但有一个不同的地方;

首先是Content-Type:multipart/form-data;boundary=---------------------------7da2137580612;

因为表单类型为:multipart/form-data,上传文件使用的不在是HTTP协议,不在是name="--"的方式了,而是使用

分隔符

字段内容

分隔符

字段内容

比如:

请求头

---------------------------7da2137580612

Content-Disposition:form-data;name=“username”

zhuzg

---------------------------7da2137580612

Content-Disposition:form-data;name=“image”;filename=“123.jpg”

Content-Type:application/octet-stream

---------------------------7da2137580612----------- //结束标志

时间: 2024-11-15 10:50:24

Android客户端多文件上传的相关文章

客户端的文件上传到服务器,服务器返回文件的路径

客户端的文件上传到服务器,服务器返回文件的路径 返回信息,客户端将文件保存 客户端: <?php header('content-type:text/html;charset=utf8'); $url = 'http://192.168.1.118/legcc/aaa.php';//访问的服务器的地址 $curl = curl_init(); $path = 'D:\www\ceshi\a02.jpeg';//客户端文件的绝对路径 $source = file_get_contents($pat

Android WebView 支持 文件上传(Html File Upload)

背景:有个html页面,用html里面自带的<input type =file/>上传文件(图片,word,Excel等)浏览器直接打开可以上传,套壳在Android app里面,点击文件上传没反应,修改Android代码,可以实现相应功能,亲测有效. 1.在oncreate 方法上面 加入以下代码: 1 private static final int REQUEST_STORAGE = 1; 2 private static final int REQUEST_LOCATION = 2;

普通的java Ftp客户端的文件上传

关于ftp上传文件其实并不难,但有时候面对现实的环境还是很蛋疼的,今天我就分享一下,普通的上传文件文件至FTP的方式,它满足大部分FTP,但也有特别的,下篇博客会提及到. 下面我用一个FtpUtil,来实现各种功能: 我们这里的主要功能是: 把本地文件夹下的文件上传到ftp的一个文件夹下 ,如果上传成功,就把上传成功的文件备份到另一个文件夹下,如果备份成功,就可以拿备份成功的文件删除了. 直接上代码了! package cn.tendency.utils; import java.io.File

Android Http POST文件上传之-----RFC1867协议

RFC1867协议介绍 RFC1867协议主要是在HTTP协议的基础上为INPUT标签添加了file属性.同一时候限定了Form的method必须为POST,ENCTYPE必须为multipart/form-data. 其他属性标签, <INPUT TYPE=file>标记能够有一个VALUE属性来指定默认的文件名 ,能够用"SIZE=宽,高"来指定SIZE属性 . multipart/form-data multipart/form-data的媒体内容遵从RFC 1521

android Volley 实现文件上传功能

Volley不解释了吧, android 官方的一个网络请求库. 源代码的地址在: [email protected]:com314159/VolleyMultiPartRequest.git 是根据 https://github.com/smanikandan14/Volley-demo 这位大神修改而来的, 但是那位大神的代码有bug, 上传文件不成功. 注: 我的demo里面还集成了okhttp, 不需要的同学不用理这个类即可 实现方法: 1.添加三个jar包, httpcore-4.3.

Android + https 实现 文件上传

package com.example.wbdream.zigvine; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDataba

Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载

上一篇专题Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信我们讲解了如何使用httpurlconnection来实现基本的文本数据传输.一般在实际开发中我们可以用于传输xml或者json格式的数据.今天我们来讲解另外一种http网络请求的方式:httpclient,并实现文件的上传和下载. 在这里插个题外话,其实这些网络请求有很多第三方jar包可以使用,这些包都封装得很好了.如果只是想使用,我们就直接拿别人得jar包来用就好.博主这里推荐一个叫xuti

Spring 4 官方文档学习(十一)Web MVC 框架之multipart(文件上传)支持

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart 1.简介 Spring内置的multipart支持会处理web应用中的文件上传.你可以启用该支持 -- 通过可插拔的MultipartResolver对象们,它们都是定义在 org.springframework.web.multipart 包中.Spring提供了一个MultipartResolver实

PHP单文件上传原理及上传函数的封装

<?php //单文件上传函数的封装 //文件上传原理:将客户端的文件上传到服务器端,再将服务器端的临时文件移动到指定目录即可. //文件的方向:客户端-->服务器(临时文件)-->指定目录,当文件进入服务器时它就是临时文件了,这时操作中要用临时文件的名称tmp_name. //在客户端设置上传文件的限制(文件类型和大小)是不安全的,因为客户能通过源代码修改限制,所以在服务端这里设置限制. //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/ht