struts1和cos实现文件上传

本文探讨了使用COS组件在Struts1框架下进行大文件上传时遇到的问题,即当Action配置了name属性后上传失败。文中提供了具体的代码实现,并介绍了页面的基本设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于自己现在做的项目需要实现大文件上传,通过查资料发现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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值