【100分】Java批量上传文件

mooonchen 2015-03-18 02:39:47
首先谢谢大家花时间看我的帖子。
我想利用commons-fileupload.jar 实现批量上传文件
假如我在网页上传了三个文件,每个文件都有自己的作用,那么,在后台Java程序如果区分出上传的三个文件?

我想到一个方法,利用name属性,比如下面的程序
<form id="fileUploadForm" name="fileUploadForm" method="post" 
action="./BackGroundService.action" enctype="multipart/form-data" >
<input type="file" name="file1" /><br>
<input type="file" name="file2" /><br>
<input type="file" name="file3" /><br>
</form>


那么在后台java程序中,我在保存上传的文件的同时如何取得name属性对应的值?

我的目的是为了在后台java程序中,区分出上传的文件,其它办法也行,谢谢大家!
...全文
463 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ansel-枫儿-Moe 2015-03-23
  • 打赏
  • 举报
回复
只写了上传一个文件。。。
qq_18048169 2015-03-23
  • 打赏
  • 举报
回复
学习一下,大神给力点。
等待时候 2015-03-23
  • 打赏
  • 举报
回复
后台定义一个File数组就行了!
王者_来归 2015-03-21
  • 打赏
  • 举报
回复
引用 6 楼 IUPRG 的回复:
不是你这样搞的,你搜索一下 struts2文件上传的代码吧 后台action 定义 List<File> file xml文件设置好以后,自动捕获多个文件! 前台可以搭配使用 uploadify组件
用struts2的这个可以实现
New 2015-03-21
  • 打赏
  • 举报
回复
用servlet+commons-fileupload.jar来实现,可以获取每个文件name值,然后判断就OK了
LFANG- 2015-03-20
  • 打赏
  • 举报
回复
多文件上传倒是知道,不过你说要区分每个文件的不同,上传文件时文件应该有个标准特征,比如格式等等,你在保存的时候加个if判断其不同分别保存在不同文件夹就可以了。多文件上传Struts2有个自己得多文件名字的规则,你去查查就知道了
姜小白- 2015-03-20
  • 打赏
  • 举报
回复
可以通过上传文件的文件名来区别 commons-fileupload.jar 文件上传和servlet3.0的文件上传差不多 参考 servlet3.0多文件上传
qq_26717353 2015-03-20
  • 打赏
  • 举报
回复
学习了,是好问题,
julianyuan 2015-03-20
  • 打赏
  • 举报
回复
你可以通过HttpServletRequest 得到这些信息。 我这边用的是struts2,下面是上传文件的代码片段,可以作为参考。

    //得到HttpServletRequest 
    HttpServletRequest request = ServletActionContext.getRequest();
    //判断request是否是MultiPartRequestWrapper
    if (!(ServletActionContext.getRequest() instanceof MultiPartRequestWrapper)) {
        return ERROR;
    }
    MultiPartRequestWrapper multiWrapper = (MultiPartRequestWrapper) ServletActionContext.getRequest();
    Enumeration<String> e = multiWrapper.getFileParameterNames();
    if (e != null) {
            while (e.hasMoreElements()) {
                //这个inputName就是页面的input控件的name,在你的例子中,这个就是file1,file2,file3
                String inputName = (String) e.nextElement();
                //MIME 类型
                String[] contentType = multiWrapper.getContentTypes(inputName);
                //上传文件本身的名字,如果是有中文乱码请对字符集做转换
                String[] fileName = multiWrapper.getFileNames(inputName);
                //上传的文件
                File[] file = multiWrapper.getFiles(inputName);

                if (file != null) {
                    for (int i = 0; i < file.length; i++) {
                        log.info("===upload file: " + inputName + " " + contentType[i] + " " + fileName[i] + " " + file[i]);
                    }
                }
            }
    }
  • 打赏
  • 举报
回复
不是你这样搞的,你搜索一下 struts2文件上传的代码吧 后台action 定义 List<File> file xml文件设置好以后,自动捕获多个文件! 前台可以搭配使用 uploadify组件
  • 打赏
  • 举报
回复

<input type="file" name="file" />
<input type="file" name="file" />
<input type="file" name="file" />
name属性都一样,资源模型层用List<MultipartFile> images,再转换成需要的对象List<UploadImage> images至于区分,转换的时候调用MultipartFile的getName()方法就能拿到文件名字
master_y 2015-03-19
  • 打赏
  • 举报
回复
我前不久才用这个插件做了一个,用springMVC做的
小老头头 2015-03-18
  • 打赏
  • 举报
回复
直接在Action中定义字符串接收同名文件就可以
a327369238 2015-03-18
  • 打赏
  • 举报
回复
不是可以在Action中获取上传的文件的文件名吗?

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧