`

多附件上传内存溢出的问题

阅读更多
这段时间正在研究多附件上传,struts1.x的多附件上传已经做出来了,能控制文件的大小和上传的类型,并且会提示用户上传结果和失败原因,根据不同类型给予不同类型的图片展示。过两天就把源码贴出来。

但是这样个例子就出现一个问题,因为它采用的是struts的FormFile上传组件,所以不免会有些BUG或者漏洞,大家可以看下源码,这个组件上传的时候,由于要判断用户上传文件的大小,是先把文件读取到内存中的,如果上传500M以上的文件,那服务器肯定挂掉或者内存溢出。

在网上看过很多帖子,用流来读取客户端上传的文件、有的建议是采用数字验证的applet来做上传控件。
但是applet只能局限于jdk1.1版本上,这样做出来的界面会很难看。所以只好采用流来读取客户端上传的文件,也就是读一点存到客户端一点,这样也能实现断点续传的功能,在这里请教下各位大牛,有没有用流来读取
客户端上传的文件,而不通过读入到内存中,并且可以实现断点续传功能的例子,或者大家给点建议也好,谢谢。

 

分享到:
评论

相关推荐

    java 支持 超大上G , 多附件上传

    在Java开发中,处理大文件和多附件上传是一项常见的任务,尤其在构建Web应用程序时。`java 支持 超大上G , 多附件上传` 这个标题所指的就是Java平台如何处理大容量文件及批量附件的上传功能。在给定的描述中提到了`...

    使用Webservice实现大容量附件上传

    2. **内存管理**:一次性加载大文件可能导致服务器内存溢出。 3. **性能问题**:长时间上传可能导致用户等待时间过长,影响用户体验。 4. **断点续传**:网络中断后,需要支持从上次断点继续上传,避免重新开始。 5....

    ajax大附件上传,可以看到上传进度

    1. **分块上传**:通过切割文件为较小的部分,可以避免一次性加载大量数据导致的浏览器内存溢出问题。 2. **进度条展示**:使用JavaScript和HTML5的File API,可以实时获取到上传进度,更新UI中的进度条。 3. **断点...

    java 附件文件上传

    大文件上传可能导致内存溢出,可以考虑使用流式处理,分块上传,或者使用第三方库如Apache Commons FileUpload来更有效地处理文件上传。 综上所述,Java Struts实现多文件上传涉及了配置、ActionForm、文件处理、...

    关于上传大附件的源代码

    本示例源代码主要解决了使用Java处理大附件上传的问题。以下是针对这个主题的详细知识点解释: 1. **大文件上传**:传统的HTTP表单上传方式对于大文件可能会导致内存溢出,因为整个文件会被一次性加载到内存中。...

    动态添加附件-上传文件

    同时,为了处理大文件,通常会采用分块上传或者文件切片技术,以避免内存溢出或网络阻塞问题。 6. **安全性与权限管理**: 文件上传必须考虑到安全因素,例如防止上传恶意文件(如脚本文件)。服务器端需要验证...

    ajax上传附件到服务器

    本教程将深入讲解如何使用Ajax实现附件上传到服务器的前后台交互。 一、前端实现 1. HTML部分:首先,我们需要一个表单让用户选择文件。HTML5引入了`<input type="file">`元素,允许用户选择本地文件。 ```html ...

    java附件长传功能

    它提供了更高级的API,能处理大文件上传,防止内存溢出,以及分块上传等复杂情况。通过`DiskFileItemFactory`和`ServletFileUpload`,我们可以创建一个解析器来处理上传请求。 3. **进度条显示**:为了展示上传进度...

    用JK2整合TOMCAT和IIS后大附件的上传解决方法

    综上所述,解决JK2整合的IIS与Tomcat环境下大附件上传的问题,需要综合考虑服务器配置、编程接口、网络传输等多个因素。通过以上步骤的调整和优化,可以有效提升大文件上传的成功率和用户体验。在实际操作中,应根据...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    然而,由于HTTP协议本身的限制,传统的文件上传方式可能会遇到问题,如超时或内存溢出。 为了实现JSF的大文件上传,开发者通常需要借助第三方库,如Apache Commons FileUpload或者PrimeFaces的FileUpload组件。这些...

    java实现的上传大文件以及压缩包,并且支持断点续传-上传大文件.zip

    传统的HTTP表单提交方式不适用于大文件,因为它们可能导致内存溢出或服务器超时。为了解决这个问题,可以使用基于Servlet 3.0的多部分请求(Multipart Request)或者第三方库如Apache Commons FileUpload。多部分...

    jquery批量上传, java后台批量上传下载无BUG对接,类似qq邮箱附件上传功能

    本项目针对这一需求提供了实现,标题提及的是“jquery批量上传”与“java后台批量上传下载无BUG对接”,这涉及到前端jQuery库的使用以及后端Java技术的集成,以实现类似QQ邮箱附件上传的功能。以下将详细介绍这两个...

    第十二节 java附件上传

    在Java编程语言中,附件上传是一项常见的功能,特别是在构建Web应用程序时,比如用户需要上传图片、文档等文件。本节将深入探讨Java中处理文件上传的相关知识点,包括使用HTTP协议、多部分表单数据、Servlet API以及...

    spring mvc 附件上传至腾讯云qcloud

    在Spring MVC中实现附件上传至腾讯云QCloud的过程涉及到多个技术环节,包括前端表单提交、后端控制器处理、文件存储策略以及与QCloud SDK的交互。以下将详细阐述这一过程中的关键知识点。 1. **Spring MVC基础知识*...

    axis 上传附件跟接收附件

    同时,确保服务器的环境变量和配置文件正确设置,以便处理大文件时避免内存溢出问题。 5. **源码分析**: 标签中的“源码”暗示了理解Axis处理文件上传和下载的内部机制。开发者可能需要查看Axis的源代码,理解其...

    c#上传大文件

    - **内存限制**:传统的一次性读取整个大文件到内存中可能会导致内存溢出,尤其是对于几GB的文件。 - **用户体验**:长时间无响应的上传可能导致用户认为程序卡死。 - **网络中断**:大文件上传过程中,网络连接...

    Jsp上传文件所需jar包

    3. **临时存储文件**:获取每个文件项,将其写入临时目录,以防止内存溢出。 4. **验证和处理文件**:检查文件大小、类型等,然后进行必要的业务处理,如保存到数据库或移动到服务器的指定位置。 5. **返回响应**:...

    ASP————批量上传文件

    为了防止内存溢出,通常我们会使用流式处理来读取和写入文件,而不是一次性加载整个文件到内存。 在实际应用中,考虑到文件大小和数量,我们可能还需要实现异步上传,例如使用Ajax技术分块上传大文件,或者使用...

    WCF上传大文件源码

    在传统的HTTP上传中,整个文件内容会被一次性发送到服务器,这对大文件来说可能不实际,因为可能导致内存溢出或者超时问题。WCF提供了一种流式传输(Streaming)的方法,可以处理大文件而不必将整个文件加载到内存中...

Global site tag (gtag.js) - Google Analytics