您的位置:首页 > 编程语言 > Java开发

struts1和cos实现文件上传

2014-08-24 16:20 441 查看
由于自己现在做的项目需要实现大文件上传,通过查资料发现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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: