上传文件临时文件问题

耳威巴帝 2017-09-23 02:45:56
昨天在做文件上传,包括稍大的文件,1G以内的。

用的DiskFileItemFactory,ServletFileUpload上传方式。

代码开发的时候发现,DiskFileItemFactory上传文件时,如果文件小缓会存在内存中,文件大缓存在服务器的一个临时目录中。

我想问的是:

为什么要缓存在临时目录,然后在上传到要求的位置,我上网找了资料后发现,说法不一,包括

1,这样可以修改文件名称,保证文件安全。
2,用户上传的文件无法确定是否安全,所以要先缓存到临时文件,在用代码处理
等等一些。

但我作为开发者,我就认为,先缓存到临时目录,在上传,明显降低了上传的效率,导致上传本身一个流传递,变成了两个流。

所以想问各位大佬,文件上传为什么要缓存一个临时文件?

...全文
1211 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
红尘白发 2020-11-18
  • 打赏
  • 举报
回复
同样有这样的疑问 目前有答案嘛?
耳威巴帝 2017-09-25
  • 打赏
  • 举报
回复
啊啊啊,还有没有大佬能解释一下啊。谢谢。。
耳威巴帝 2017-09-23
  • 打赏
  • 举报
回复
引用 1 楼 albb252 的回复:
[quote=引用 楼主 y278879319 的回复:] 昨天在做文件上传,包括稍大的文件,1G以内的。 用的DiskFileItemFactory,ServletFileUpload上传方式。 代码开发的时候发现,DiskFileItemFactory上传文件时,如果文件小缓会存在内存中,文件大缓存在服务器的一个临时目录中。 我想问的是: 为什么要缓存在临时目录,然后在上传到要求的位置,我上网找了资料后发现,说法不一,包括 1,这样可以修改文件名称,保证文件安全。 2,用户上传的文件无法确定是否安全,所以要先缓存到临时文件,在用代码处理 等等一些。 但我作为开发者,我就认为,先缓存到临时目录,在上传,明显降低了上传的效率,导致上传本身一个流传递,变成了两个流。 所以想问各位大佬,文件上传为什么要缓存一个临时文件?
这个没办法,框架就是这么实现的。一般情况下大的文件上传都要使用单独的插件来上传。因为这样体验更好,用户使用起来也比较方便。[/quote] 是吗?但真正使用起来,用途体验其实是更差吧,本来一遍上传就好了,结果现在要两边,用户等待时间更长了。
albb252 2017-09-23
  • 打赏
  • 举报
回复
引用 楼主 y278879319 的回复:
昨天在做文件上传,包括稍大的文件,1G以内的。 用的DiskFileItemFactory,ServletFileUpload上传方式。 代码开发的时候发现,DiskFileItemFactory上传文件时,如果文件小缓会存在内存中,文件大缓存在服务器的一个临时目录中。 我想问的是: 为什么要缓存在临时目录,然后在上传到要求的位置,我上网找了资料后发现,说法不一,包括 1,这样可以修改文件名称,保证文件安全。 2,用户上传的文件无法确定是否安全,所以要先缓存到临时文件,在用代码处理 等等一些。 但我作为开发者,我就认为,先缓存到临时目录,在上传,明显降低了上传的效率,导致上传本身一个流传递,变成了两个流。 所以想问各位大佬,文件上传为什么要缓存一个临时文件?
这个没办法,框架就是这么实现的。一般情况下大的文件上传都要使用单独的插件来上传。因为这样体验更好,用户使用起来也比较方便。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧