首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
资讯
软件
博客
动弹
专区
问答
活动
工具
培训
APP
Gitee
新媒体
OSC 直播栏目
技术领航
OSC 公众号
硬核 + 嬉笑怒骂
OSC 微博
技术圈大 V 出没
OSC 视频号
AI 百科
OSC 今日头条
微头条显行业百态
LFOSSA 公众号
LF 开源软件学园
模力方舟公众号
大模型托管平台
Gitee 服务号
研发管理解决方案
登录
注册
关于文件上传的改进
本文是《轻量级 Java Web 框架架构设计》的系列博文
作者:
黄勇
关于文件上传的改进
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
黄勇
2016/02/25 01:09
引用来自“木林木”的评论
虚心请教:
// 定义一个 FileUpload 对象(用于解析所上传的文件)
private static ServletFileUpload fileUpload;
public static void init(ServletContext servletContext) {
// 获取一个临时目录(使用 Tomcat 的 work 目录)
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
// 创建 FileUpload 对象
fileUpload = new ServletFileUpload(new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, repository));
// 设置上传限制
if (uploadLimit != 0) {
fileUpload.setFileSizeMax(uploadLimit * 1024 * 1024); // 单位为 M
if (logger.isDebugEnabled()) {
logger.debug("[Smart] limit of uploading: " + uploadLimit + "M");
}
}
}
这个方法中的: fileUpload.setFileSizeMax(uploadLimit * 1024 * 1024); // 单位为 M ,是不是不会起作用啊。
因为 fileUpload 对象在声明的时候 是 static 。
(ps: 通过 jdk 1.7 验证所得)
在 init 方法被调用的时候就会初始化 fileUpload,为何 setFileSizeMax 不会起作用呢?
回复
举报
黄勇
2014/08/23 08:24
引用来自“水牛叔叔”的评论
servlet3.0完全可以 文件+普通参数 一起传
最早是提供了一个基于 Servlet 3.0 的 UploadServlet,想做一个通用的文件上传功能,但后来想想可能不太现实,毕竟文件上传还有些个性化的东西在里面,所以就去掉了这个 UploadServlet。
回复
举报
水牛叔叔
2014/08/23 08:15
servlet3.0完全可以 文件+普通参数 一起传
回复
举报
黄勇
2014/03/27 09:55
引用来自“joinwin”的评论
上传多个文件怎么实现?
Smart 2.x 里已经支持了哦
回复
举报
zbbmaster
2013/12/26 11:03
写的不错 楼主多多分享,
回复
举报
黄勇
2013/12/16 09:40
引用来自“chape”的评论
smart正式版出了没有
1.0 已经发布,2.0 正在进行中,3.0 正在规划中。
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
开
推荐博客
LFOSSA 人才激励计划 2025春季正式启动!6类开源奖学金开放申请!
OSC 培训
·
今天 17:49
0 评论
关税大战下,最受伤的企业出现了
炒蚕豆吃蹦豆
·
今天 16:30
0 评论
大数据是不是凉了?
Databend
·
今天 15:51
0 评论
Devin 发布 DeepWiki,2 星的项目直接装出万星的气场
Bytebase
·
今天 15:15
0 评论
理工科 MCP Server 神器,补足人工智能幻觉短板
阿里云云原生
·
今天 15:05
0 评论
MCP 协议:为什么 Streamable HTTP 是最佳选择?
阿里云云原生
·
今天 14:42
0 评论
Dify+DeepSeek实战教程!企业级 AI 文档库本地化部署,数据安全与智能检索我都要
Rainbond
·
今天 12:04
0 评论
《HelloGitHub》第 109 期
削微寒
·
今天 08:39
0 评论
月暗开源 Kimi-Audio,单一框架执行多种语音任务;照片秒变可对话数字人,LemonAI 推出 Slice Live丨日报
RTE开发者社区
·
昨天 18:58
1 评论
活动回顾|Apache Cloudberry™ (Incubating) Meetup·2025 杭州站
HashData
·
昨天 17:57
0 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
顶部
引用来自“木林木”的评论
虚心请教:// 定义一个 FileUpload 对象(用于解析所上传的文件)
private static ServletFileUpload fileUpload;
public static void init(ServletContext servletContext) {
// 获取一个临时目录(使用 Tomcat 的 work 目录)
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
// 创建 FileUpload 对象
fileUpload = new ServletFileUpload(new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, repository));
// 设置上传限制
if (uploadLimit != 0) {
fileUpload.setFileSizeMax(uploadLimit * 1024 * 1024); // 单位为 M
if (logger.isDebugEnabled()) {
logger.debug("[Smart] limit of uploading: " + uploadLimit + "M");
}
}
}
这个方法中的: fileUpload.setFileSizeMax(uploadLimit * 1024 * 1024); // 单位为 M ,是不是不会起作用啊。
因为 fileUpload 对象在声明的时候 是 static 。
(ps: 通过 jdk 1.7 验证所得)
引用来自“水牛叔叔”的评论
servlet3.0完全可以 文件+普通参数 一起传引用来自“joinwin”的评论
上传多个文件怎么实现?
引用来自“chape”的评论
smart正式版出了没有