?
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()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)