解决IE9与Firefox下ajaxfileupload.js上传大文件问题

4星 · 超过85%的资源 需积分: 47 41 下载量 181 浏览量 更新于2024-09-15 收藏 2KB TXT 举报
"该问题主要涉及使用ajaxfileupload.js上传大文件时,在Internet Explorer 9 (IE9)和Firefox浏览器中遇到的无效问题。通过在后台服务器端进行一些配置调整,可以解决这个问题。" 在IE9和Firefox浏览器中,使用ajaxfileupload.js上传大文件可能会遇到上传失败的情况。这是因为某些浏览器对文件上传的处理方式不同,可能受到默认设置的限制,如最大上传文件大小等。为了解决这个问题,可以在后端代码中进行以下修改: 1. **设置响应类型**: 首先,确保在响应头中设置正确的Content-Type。在给定的描述中,我们看到将`response.setContentType("text/html")`添加到代码中。这一步是必要的,因为正确的Content-Type可以告知浏览器返回的数据类型,使Ajax请求能够正确解析响应。 2. **处理大文件**: 文件上传时,需要正确处理大文件的读取和存储。在提供的代码段中,可以看到尝试创建一个`FileInputStream`来读取上传的文件。如果文件过大导致异常,代码会通过`response.getWriter().print("fileIsMax")`返回错误信息,并结束请求。 3. **文件保存路径**: 代码还展示了如何设置文件保存的路径。`AllUtil.getPropertyValue(StaticValue.UPLOAD_PATH)`获取上传路径的配置值,然后结合日期时间字符串创建一个具体的文件夹路径。这样可以确保每个上传的文件被保存在一个单独的子目录下,便于管理和组织。 4. **文件命名规则**: 代码中,文件名由原始文件名和时间戳组成,以避免文件重名冲突。原始文件名通过`substring`方法截取,获取文件扩展名,然后与当前时间戳拼接形成新的文件名。 5. **文件操作**: 创建新文件并将其写入到指定的目录中,使用`FileOutputStream`将文件内容写入新创建的文件。`byte[]`数组用于临时存储文件数据。 6. **异常处理**: 在整个文件处理过程中,确保捕获并处理可能出现的异常,例如`FileNotFoundException`。在示例中,如果无法创建`FileInputStream`,则向客户端返回错误信息,并终止请求。 要解决IE9和Firefox下使用ajaxfileupload.js上传大文件无效的问题,关键在于正确配置服务器端的响应,以及妥善处理大文件的读取、存储和异常情况。同时,合理设置文件保存路径和命名规则,可以确保文件上传过程的稳定性和可靠性。