struts1和cos实现文件上传

来源:互联网 发布:阿里云oss 七牛 编辑:程序博客网 时间:2024/06/06 00:12

由于自己现在做的项目需要实现大文件上传,通过查资料发现cos的上传效率相比其他几个上传控件效率要高,故尝试用cos试试,通过查资料和自己测试,发现cos通过servlet实现完全没问题,但是和struts1结合出现了问题:

struts1的action配置如果没有name属性,上传成功:

只要配置了name属性就提示错误:


目前这个错误还没找到解决方案,如果有谁知道这个的解决方案,请留言,多谢!

具体的代码实现如下:

//每个文件最大50m,现在是两个文件
int maxPostSize = 2*50 * 1024 * 1024 ;  
//采用cos缺省的命名策略,重名后加1,2,3...如果不加dfp重名将覆盖  
DefaultFileRenamePolicy dfp = new DefaultFileRenamePolicy();  
//response的编码为"UTF-8",同时采用缺省的文件名冲突解决策略,实现上传,如果不加dfp重名将覆盖  
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"UTF-8",dfp);  
//MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"UTF-8");  
//输出反馈信息  
Enumeration files = multi.getFileNames();  
    while (files.hasMoreElements()) {  
      String name = (String)files.nextElement(); 


      File f =  multi.getFile(name);  
      if(f!=null){  
        String fileName = multi.getFilesystemName(name);  
        //获取上传文件的扩展名  
        String extName=fileName.substring(fileName.lastIndexOf(".")+1); 
        //获取需要转换的文件名,将路径名中的'\'替换为'/'  
        String converfilename = saveDirectory.replaceAll("\\\\", "/")+"/"+fileName; 

        }
     }

页面中只要定义下面的就行:

<form name="form"  method="post" enctype="multipart/form-data" action="路径">   
        <p>  
            <input name="file" type="file">  
        </p>  
        <p>  
            <input type="submit" name="Submit" value="上传">  
        </p>  
    </form > 

需要cos.jar

0 0
原创粉丝点击