各位大侠有知道麻烦帮帮忙,问题是这样的:
我用jspSmartUppload做上传文件,如果是在jsp页面进行处理上传的话就没有任何的问题,但是我需要在类中写方法来上传,代码和页面的一样的,结果就是上传不了,整个都被挂起了。有人遇到这样的问题麻烦帮忙解决下,急用!
先行道谢!
类中的代码如下: mySmart.initialize(pageContext); mySmart.setTotalMaxFileSize(1000000); mySmart.setAllowedFilesList("htm,html,txt,bmp,gif,mp3,jsp,jpg,"); // 上传文件到服务器
mySmart.upload(); 我运行断点的时候发现是在这里被卡住了的,过不去 // 对上传到服务器的文件进行逐个处理
for(int i = 0; i < mySmart.getFiles().getCount(); i++) {
// 取出一个文件
com.jspsmart.upload.File myFile = mySmart.getFiles().getFile(i);
// 只有myFile代表的文件存在时才执行存储操作
if (!myFile.isMissing()) {
// 保存该文件到web应用程序下的files目录
myFile.saveAs("/files/" + myFile.getFileName());
}
}
解决方案 »
- Java能否内嵌资源文件?
- java、Xj3D、X3D
- 联合主键生成的类及映射文件
- 关于java窗体拖动事件
- 关于super和this
- 关于easy struts配置问题?
- 在JBuilder如何引用类库啊?
- 最基础的问题,3P (public protected private)问题
- 怎样从执行文件启动java程序,以避免出现那个控制台窗口,好象用javaw.exe也会有一个dos窗口弹出来呵,请高手指点
- java.sql.Blob为什么不可以setBinaryStream的,只可以get,如果这样的话,在以前的jdbc版本中是怎样用BLOB数据类型来对表进行操作的,怎
- J2EE 初学者 应该试着做些什么系统有帮助学习呢
- 这是什么问题
承揽:网站开发,SEO优化,毕业设计,OA,ERP,空间,域名,企业级管理系统 业务范围:[.net] [java]
在Jsp页面中pageContext是内置对象,可以直接用
因为上传的二进制流已经被Struts提前截掉了。
看下面的代码就知道了。。RequestProcessor:
public void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// Wrap multipart requests with a special wrapper
request = processMultipart(request); // Identify the path component we will use to select a mapping
String path = processPath(request, response); if (path == null) {
return;
}
.......
protected HttpServletRequest processMultipart(HttpServletRequest request) {
if (!"POST".equalsIgnoreCase(request.getMethod())) {
return (request);
} String contentType = request.getContentType(); if ((contentType != null)
&& contentType.startsWith("multipart/form-data")) { //如果是POST,而且上传文件
return (new MultipartRequestWrapper(request)); //request进行包装后返回,Action里面拿到的都是包装后的request了,而不是原始的。
} else {
return (request);
}
}在process方法的第一行就调用了:
request = processMultipart(request);
对request进行了处理。。
所以你的jspsmartupload拿到的是包装后的request...