一键采集上传常见的细节问题( 中文文件乱码问题文件名中文乱码方法,或者设置request的setCharacterEncoding属性临时文件)

优采云 发布时间: 2022-03-27 20:20

  一键采集上传常见的细节问题(

中文文件乱码问题文件名中文乱码方法,或者设置request的setCharacterEncoding属性临时文件)

  上传文件的处理细节

  中文文件乱码问题

  如果文件名中文乱码,可以调用ServletUpLoader的setHeaderEncoding方法,或者设置请求的setCharacterEncoding属性

  删除临时文件

  因为文件大小超过了 DiskFileItemFactory.setSizeThreshold 方法设置的内存缓冲区大小,Commons-fileupload 组件会使用一个临时文件来保存上传的数据。因此,在程序结束时,一定要调用 FileItem.delete 方法来删​​除临时文件。

  Delete方法的调用必须定位在流关闭之后,否则文件被占用,删除失败。

  文件存储位置

  为保证服务器安全,上传的文件应存放在应用程序的WEB-INF目录下,或者WEB服务器不管理的目录下。

  为防止多个用户上传文件名相同的文件,导致文件被覆盖,文件上传者应确保上传的文件具有唯一的文件名。

  为防止单个目录下文件过多,影响文件读写速度,处理上传文件的程序应根据可能上传的文件总数,选择合适的目录结构生成算法,将上传的文件存储起来以分散的方式。

  文件下载:

  web应用中实现文件下载的两种方式

  超链接直接指向下载资源

  要实现下载,程序需要设置两个响应头:

  将 Content-Type 的值设置为:application/x-msdownload。web服务器需要告诉浏览器,它输出的内容类型不是普通的文本文件或HTML文件,而是下载的要保存在本地的文件。

  Web服务器期望浏览器不直接处理对应的实体内容,而是由用户选择将对应的实体内容保存到文件中,这需要设置Content-Disposition头。此标头指定接收程序如何处理数据内容。在 HTTP 应用程序中,只有附件是标准方式,附件表示需要用户干预。filename参数也可以在附件后面指定,是服务器建议浏览器保存实体内容到文件的文件名。请务必在设置 Content-Dispostion 之前指定 Content-Type。

  文件下载:

  因为要下载的文件可以是各种类型的文件,要将文件传输给客户端,其对应的内容应该被当作二进制处理,所以需要调用方法返回ServeltOutputStream对象给客户端

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线