http - 如何在 Wicket 中限制上传文件的大小

标签 http upload frameworks file-upload wicket

如何在 Apache Wicket 中限制上传的文件大小1.4 版?

我正在使用 FileUploadField在没有任何 Ajax 内容的情况下处理正常表单提交的上传。使用 Form.setMaxSize() 就够了吗?限制上传文件的大小?

如果上传的文件太大,浏览器将上传整个文件,Wicket 将使用键 [form-id].uploadTooLarge 创建验证错误消息。

但是 Wicket 如何在内部处理这种情况,创建临时文件等?

我想防止在 Wicket 处理请求时用户上传不适合内存或磁盘的几 GB 文件的情况。

最佳答案

我在 Wicket 口做了一些挖掘 repository并发现该文件实际上是由 FileUploadBase.parseRequest(RequestContext ctx) 写入磁盘的.此类在将任何文件写入磁盘之前检查文件大小。

文件大小检查最终使用 javax.servlet.ServletRequest.getContentLength() 来确定文件的大小,这意味着实际实现因您使用的 servlet 容器而异;但是,我要说的是,可以安全地假设任何编写过 servlet 实现的人都知道足以从 header 中获取文件大小,而不是将整个文件写入磁盘然后检查其大小。因此,您不必担心人们试图上传大文件会耗尽您的所有磁盘空间。

关于http - 如何在 Wicket 中限制上传文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1761604/

相关文章:

java - 缓存信息以获得快速 http 响应的最佳选择

http - CORP 使用 CSP 沙箱集阻止明显同源请求

javascript - 如何使用 chai-http 放置 PDF?

php - 使用 PHP 上传图片

ios - 当我们制作框架时,如何在 Xcode 9 中添加用户定义的设置

php - GET 与 POST 最佳实践

javascript - 使用 Multer 重命名上传的文件不起作用 (Express.js)

python - Django文件上传: filename not sticking

java - 如何使用 java 接口(interface)在外部提供实现

java - 如何构建 Java Web 应用程序