java编程:文件上传,,普通上传没有控件,怎么限制他的大小啊,比如上传文件不得超过10M,求大神

 我来答
小生怕怕啊呜呜
2014-11-13 · 超过19用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:22.9万
展开全部
在后台action中判断,把上传的文件流用字节读出来,判断这个文件的字节流大小。然后根据自己的设置的最多进行判断,1kb=1024b
追问
怎么用字节读取文件流啊
追答
1.如果是在配置中判断就需要修改struts配置加入

2.如果是struts自带
需要定义属性字段,并要getter和setter方法
private File image; //上传的文件
private String imageFileName; //文件名称

public void upload() throws Exception{
//将要保存的路径

String saveUrl = ServletActionContext.getServletContext().getRealPath("/img");
if (file != null) {
System.out.println(file.length());//打印文件字节大小,可以根据自己的设置用if判断
File savefile = new File(new File(saveUrl), fileName);
if (!savefile.getParentFile().exists())
savefile.getParentFile().mkdirs();
FileUtils.copyFile(file, savefile);
}
}
3.如果是通过外部jar包,比如smartUpload之类的架包的话,通过request来完成
FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
servletFileUpload.setSizeMax(1000 * 1024 * 1024);//设置上传大小
List fileItems = servletFileUpload.parseRequest(request);//接受流
百度网友5ebfa24
2014-11-13 · 超过34用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:66.4万
展开全部
可以在acton或者servlet中获取上传文件的大小,如果大于10M则不进行后面的逻辑处理、
追问
我用的是ssh框架  所以要在action里处理的,可是不知道怎么做了  百度上说什么new一个File(Path)  然后判断file.size()  可是没有size那个属性啊  用length的话又总是显示0  要怎么写呢 帮帮忙吧亲
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式