http能传输500g的文件吗

http能传输500g的文件吗,第1张

可以。早期互联⽹上传输的基本上都是只有⼏ K ⼤⼩的⽂本和⼩图⽚,现在的情况则⼤有不同。⽹页⾥包含的信息实在是太多了,随随便便⼀个主页 HTML 就有可能上百 K,⾼质量的图⽚都以 M 论,更不要说那些电影、电视剧了,⼏ G、⼏⼗ G 都腔枣御有可能。

数据压缩

浏览器在发送请伍岩求时都会带着 Accept-Encoding 头字段,⾥⾯是浏览器⽀持的压缩格式列表,例如 gzip、deflate、br 等,这样服务器就可以从中选择⼀种压缩算法,放进 Content-Encoding 响应头⾥,再把原数据压缩后发给浏览器。如果压缩率有 50%,那么 100k 的数据压完之后只剩 50k,相当于在带宽不变的情况下⽹速快了⼀倍。

分块传输

除了压缩⽂件之外,另⼀种办法就是分块传输。它们的原理差不多,都是把⼤⽂件变⼩传输。分块传输会把⼀个⼤⽂件切成很多⼩块,把这些⼩块依次发给浏览器,浏览器收到之后再组装复原。这样浏览器和服务器都不⽤在内存中保存全部⽂件,每次只收发⼀⼩部分,⽹岩码络也不会被⼤⽂件长时间占⽤,内存、带宽等资源也就节省下来了。

小文件可以信渣旅在post时顺带发过去。梁者

大文件可以用数据流模式滑凳传输 inputstream/outputstream 在浏览器里放控件 activex,applet,flash等等应该都可以。

你用的servlet 还是别的框架?

选POST

选form-data

选body

选File

选文件

Send

// commons fileupload组件的情况下,servlet接收的数据只能是type=file表单元素拿并指类型,那么获取type=text类型,就可以使用parseRequest(request)来获取list,fileitem,判断isFormField,为true非file类型的。就可以处理了。下面是处理的部分代码:

DiskFileItemFactory factory 蔽差= new DiskFileItemFactory()factory.setSizeThreshold(1024*1024)

String dirtemp = "c:"

File filedir = new File(dirtemp + "filetemp")

String str = nullif(!filedir.exists())filedir.mkdir()factory.setRepository(filedir)

ServletFileUpload upload = new ServletFileUpload(factory)

List list = upload.parseRequest(request)for(

int i = 0i<list.size()i++)

{

FileItem item = (FileItem) list.get(i)

if (item.isFormField()) {

System.out.println(item.getString())

} 消配else {

String filename = item.getName()

item.write(new File(request.getRealPath(dir), filename))

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存