[SOS]紧急救援
问题是这样的:
我使用文件上传组件COS进行文件的上传操作,按照COS的例子,我也成功的做了一个Demo,但这个Demo是这样的.有两个JSP文件:
a.jsp(用于生成上传界面)
upload.jsp(内嵌了javaCode实现文件上传操作)
我想对他进行点改进,就是说:我实现文件上传的代码我想写在StrutsAction中,而不是嵌在一个JSP里面.具体我是怎么写的,请看下面的代码:
a.jsp的代码如下:
<!-- 测试集成COS文件上传效果 -->
<%@ page contentType="text/html; charset=GBK"%>
<html>
<body>
<form name="form1" method="post" enctype="multipart/form-data"
action="upload.jsp">
<input name="file1" type="file"><br>
<input name="file2" type="file"><br>
<input name="file3" type="file"><br>
<input type="submit" name="Submit" value="上传">
</form>
</body>
</html>
upload.jsp的代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.util.Enumeration"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="java.io.File" %>
<html>
<head>
</head>
<body>
<%
String saveDirectory = "c:\\upload";
//每个文件最大5m,最多3个文件
int maxPostSize = 3 * 5 * 1024 * 1024;
//response的编码为"gb2312",同时采用缺省的文件名冲突解决策略,实现上传
MultipartRequest multi = new MultipartRequest(request,saveDirectory,
maxPostSize, "gb2312");
//输出反馈信息
Enumeration file = multi.getFileNames();
while (file.hasMoreElements()) {
String name = (String) file.nextElement();
File f = multi.getFile(name);
if (f != null) {
String fileName = multi.getFilesystemName(name);
String lastFileName = saveDirectory + "\\" + fileName;
out.println("文件已经上传到:" + lastFileName);
out.println("<br>");
}
}
%>
</body>
</html>
通过上面的两个JSP文件,我成功的完成了我的上传操作!
但是,我把它移植到Struts的Action中就报错了。请继续往下看:
a-1.jsp的代码如下:
<!-- 测试集成COS文件上传效果 -->
<%@ page contentType="text/html; charset=GBK"%>
<html>
<body>
<form name="form1" method="post" enctype="multipart/form-data"
action="/uploadAction.do">
<input name="file1" type="file"><br>
<input name="file2" type="file"><br>
<input name="file3" type="file"><br>
<input type="submit" name="Submit" value="上传">
</form>
</body>
</html>
UploadActionForm.java的代码如下:
public class UploadActionForm extends ActionForm {
private FormFile file1 = null;
private FormFile file2 = null;
private FormFile file3 = null;
........
........//省略
UploadAction的代码如下:
public class UploadAction extends Action {
/**
* @name execute
* @title 测试文件上传组件COS集成效果
* @param ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse
* @return ActionForward
* @description
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String saveDirectory = "c:\\upload";
//每个文件最大5m,最多3个文件
int maxPostSize = 3 * 5 * 1024 * 1024;
//response的编码为"gb2312",同时采用缺省的文件名冲突解决策略,实现上传
MultipartRequest multi = new MultipartRequest(request,saveDirectory,
maxPostSize, "gb2312");
//输出反馈信息
Enumeration file = multi.getFileNames();
while (file.hasMoreElements()) {
String name = (String) file.nextElement();
File f = multi.getFile(name);
if (f != null) {
String fileName = multi.getFilesystemName(name);
String lastFileName = saveDirectory + "\\" + fileName;
response.getWriter().println("文件被上传到:" + lastFileName);
response.getWriter().println("<br>");
}
}
return mapping.findForward("jspView");
}
}
我请求这个页面的时候,控制台报出如下错误信息:
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - Executing org.apache.struts.chain.commands.servlet.ExceptionHandler
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - See if actionConfig ActionConfig[cancellable=falsepath=/test_4Actionvalidate=false,input=jspView,name=test_4ActionForm,scope=request,type=com.eredlab.eredcip.test.web.action.Test_4Action has an exceptionConfig for java.io.IOException
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look locally for java.io.IOException
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look globally for java.io.IOException
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look locally for java.lang.Exception
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look globally for java.lang.Exception
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look locally for java.lang.Throwable
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look globally for java.lang.Throwable
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look locally for java.lang.Object
2007-11-02 01:45:54,750 DEBUG [http-8082-Processor23] - findException: look globally for java.lang.Object
2007-11-02 01:45:54,750 WARN [http-8082-Processor23] - Unhandled exception
java.io.IOException: Posted content type isn't multipart/form-data
at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:166)
at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:173)
at com.eredlab.eredcip.test.web.action.Test_4Action.execute(Test_4Action.java:39)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
不知如何解决,请指教,
鞠躬!
- cos.zip (363.7 KB)
- 描述: 上传组件COS的jar包,API文档和示例程序都在里面,供参考!
- 下载次数: 264
分享到:
相关推荐
基于java的开发源码-文件上传组件 COS.zip 基于java的开发源码-文件上传组件 COS.zip 基于java的开发源码-文件上传组件 COS.zip 基于java的开发源码-文件上传组件 COS.zip 基于java的开发源码-文件上传组件 COS.zip ...
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...
java开发中常用的类库cos.jar,用于文件的上传下载功能。
例如,使用cos上传方式,则需要自己下载cos框架的JAR文件,并将该文件放在WEB-INF/lib路径下. struts.multipart.saveDir 该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir. struts....
包含4个jar:cos.jar,jsp-api.jar,servlet-api.jar;smartupload.jar。可实现Java Web中的文件上传与下载。
Java文件上传组件 COS
jfinal文件上传需要使用cos组件:cos-26Dec2008.jar;有需要可自行下载
Java文件上传组件 COS.7z
jquery+SWFUpload+COS上传组件的使用.docjquery+SWFUpload+COS上传组件的使用.doc
物体的复振幅透过率tx=cos(2*pi*x./b) 观察相干和非相干照明下的成像。 MATLAB代码
基于Java的文件上传组件 COS.zip
基于java的文件上传组件 COS.zip
[聊天留言]Cos.X留言板_thisky.zip
java源码:Java文件上传组件 COS.zip
[聊天留言]Cos.X留言板_thisky.zip源码PHP项目源代码下载[聊天留言]Cos.X留言板_thisky.zip源码PHP项目源代码下载 1.适合个人搭建网站项目参考 2.适合学生毕业设计搭建网站参考 3.适合小公司搭建网站项目参考
基于Java的实例源码-文件上传组件 COS.zip
前段时间做了个文件上传的用fileupload和cos文件上传做了个比较.感觉cos文件上传要比前者性能和上传的文件大小上都要强很多.所以就做了个小例子
把 cos-wx-sdk-v4.js 放在小程序 app/lib/ 目录下,在您的页面 js 里引入: require('../../lib/cos-wx-sdk-v4'); 使用 cos-wx-sdk-v4 与 cos-js-sdk-v4 的不同点 小程序文件上传过程中,js 没权限读取文件内容,...
jquery+SWFUpload+COS上传组件的使用 jquery+SWFUpload+COS上传组件的使用jquery+SWFUpload+COS上传组件的使用jquery+SWFUpload+COS上传组件的使用jquery+SWFUpload+COS上传组件的使用jquery+SWFUpload+COS上传组件...
在jsp中实现文件上传,可用的类库很多,比如有著名的jspsmart公司SmartUpload,struts里面也有。我这里说说cos,它是O'Reilly公司的,O'Reilly的图书是很8错的,这个上传的组件也做得很棒,最重要的是,它是open ...