Android上大文件分片上传 具体怎么弄

Android上大文件分片上传 具体怎么弄,第1张

正常情况下,一般都是在长传完成后,在服务器直接保存。

?

1

2

3

4

5

6

7

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain"

//保存文件

context.Request.Files[0].SaveAs(context.Server.MapPath("~/1/" + context.Request.Files[0].FileName))

context.Response.Write("Hello World")

}

最近项目中用百度开源的上传组件webuploader,官方介绍昌大销webuploader支持分片上传。具体webuploader的使用方法见官网http://fex.baidu.com/webuploader/。

?

1

2

3

4

5

6

7

8

9

10

11

12

var uploader = WebUploader.create({

auto: true,

swf:'/webuploader/Uploader.swf',

// 文件接收服务端。

server: '/Uploader.ashx',

// 内部根据当前运行是创建,可能是input元耐游素,也可能是flash.

pick: '#filePicker',

chunked: true,//开启分片上传

threads: 1,//上传并发数

//由于Http的无状态特征,在往服务器发送数据过程传递一个进入当前页面是生成的GUID作为标示

formData: {guid:"<%=Guid.NewGuid().ToString()%>"}

})

webuploader的分片上传是把文件分成若干份,然后向你定义的文件接收端post数据,如果上传的文仿卖件大于分片的尺寸,就会进行分片,然后会在post的数据中添加两个form元素chunk和chunks,前者标示当前分片在上传分片中的顺序(从0开始),后者代表总分片数。

提供一点demo

断点续传(改良版)

package com.phone1000.demo09

import java.io.File

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import java.io.RandomAccessFile

public class RandomAccessDemo {

public static void main(String[] args) {

// 1.找到文件

File file = new File("E:\\百度云盘\\百度云同步盘\\Android开发视频教程\\[Android开发视频教程]02_01_spinner的使用.mp4")

File file2 = new File("凯册E:\\我的照片\\[Android开发视频教程]02_01_spinner的使用.mp4")

//2.创建流

RandomAccessFile is = null

FileOutputStream os = null

try {

is = new RandomAccessFile(file,"r")

os = new FileOutputStream(file2,true)

//3.定义盯搜宏一个容器

byte[] b = new byte[1024]

//4.定义一漏侍个长度

int len = 0

long oldLength = file.length()

long newLength = 0

//5.循环读数

while((len = is.read(b)) != -1){

if(newLength >= oldLength)

{

System.out.println("传输完成!")

break

}

else{

newLength = newLength + len

is.seek(newLength)

os.write(b)

}

}//释放资源

os.close()

is.close()

} catch (FileNotFoundException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8192035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存