使用commons-fileupload文件上传,多用户同时上传速度很慢,如何解决?

哒哒哒不嗒啦 发布于 2018/03/04 12:56
阅读 912
收藏 1

我后台框架是spring+springmvc ;

前台就是正常的

<form action="upload.action" method="post" enctype="multipart/form-data">

上传文件表单,我上传一个几百M的文件到服务器的时候,耗时十分钟左右,当测试多用户同时上传文件的时候,每个文件的上传至少要到几十分钟,我前台有做进度条,然后在controller层的“upload”入口打断点调试,发现当文件上传到100%时才会触发断点进入到“upload”接口中,那我想问在文件上传的0%-100%之间的时候,此文件是上传在哪里?缓存?谁的缓存?能不能从后台获取到上传中的文件,我想用多线程做到一边上传一边读取再转存到磁盘中,即前台上传了30%,后台就读取30%并写入磁盘。

能否通过调大maxInMemorySize(我一开始没设置这个属性值,好像默认是1024)属性来解决多用户同时上传速度慢的问题?

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
       
        <property name="defaultEncoding" value="utf-8"></property>
 
        <property name="maxUploadSize" value="1073741824"></property>
        
        <property name="maxUploadSizePerFile" value="1073741824"></property>

</bean>

@RequestMapping("upload")
    public String upload(@RequestParam("fileupload") MultipartFile fileupload){

fileupload.transferTo(new File("D:/");

return "";

}

新人请教,在网上找了很多都没找到相关问题的答案,请大神给个解答,谢谢。

加载中
0
kakai
kakai

你确定不是带宽问题?

哒哒哒不嗒啦
多谢了
kakai
kakai
回复 @哒哒哒不嗒啦 : 能获得文件流数据,你拿了也没多大用吧
哒哒哒不嗒啦
我刚刚仔细回想了下,应该是带宽问题,好傻。。。 还有我想请教下在后台能拿到前台上传过程中的文件吗?
0
一号男嘉宾
一号男嘉宾
文件切片,我们上传一部电影1G左右的,也留两三分钟
哒哒哒不嗒啦
多谢,后面估计要这么做
0
h
hao5ang
使用一种能获取 inputsteamm 的方法上传文件,每读取一些就写入磁盘。
哒哒哒不嗒啦
多谢
0
青冢黄昏路上的回眸
青冢黄昏路上的回眸

文件上传的话 实际上是把文件放到了http请求的请求体中的 你用的springmvc的话文件是被dispacherservlet先拿到了的 所以你的映射请求方法才会在100%的时候才进断点,你可以自己写个servlet来实现你自己想要的功能

哒哒哒不嗒啦
d懂了,谢谢
返回顶部
顶部