您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
servletfileupload(在JSP中,创建ServletFileUpload对象的方法是)
表单,对象,里面servletfileupload(在JSP中,创建ServletFileUpload对象的方法是)
发布时间:2020-12-06加入收藏来源:互联网点击:
最近很多小伙伴想了解servletfileupload的一些资讯,今天小编整理了与servletfileupload相关的信息分享给大家,一起来看看吧。
本文目录一览:
1、servlet上传图片路径问题 2、ServletFileUpload.isMultipartContent(request)作用 3、在JSP中,创建ServletFileUpload对象的方法是 4、servletfileupload类没有parsereqest方法,怎么办servlet上传图片路径问题
你是想保存在项目的文件夹里面吗?不知道你有没有用Struts,如果只是单纯的servlet的话可以用下面的语句获取到真实路径:
ServletContext app = super.getServletContext(); // 调用父类 GenericServlet 的 getServletContext() 方法
app.getRealPath("/") // 取得真实路径
this.getServletContext().getRealPath("/") // 也是真实路径
如果是Struts2则就这样写:
ActionContext ac = ActionContext.getContext();
ServletContext sc = (ServletContext) ac.get(ServletActionContext.SERVLET_CONTEXT);
String path = sc.getRealPath("/");
祝你成功~~
ServletFileUpload.isMultipartContent(request)作用
作用有两个:
1、用于检测是否一个文件上传的请求。在fileupload包实现上传项目前,需要解析一个http请求,为了确保这个请求的确是一个正确的上传文件,所以组件FileUpload提供了这样一个静态的方法。
2、用于判断是普通表单,还是带文件上传的表单,起了辨别的作用。若返回值为true则是带文件上传的表单;返回值为false则是普通表单。
扩展资料
在fileupload中, http请求中的复杂表单元素都会被看作一个FileItem对象,而且FileItem对象必须由ServletFileUpload类中的parseRequest()方法去解析HTTP请求;
再者,ServletFileUpload对象的创建需要依赖于FileItemFactory工厂而获得的上传文件FileItem对象保存至服务器硬盘,也就是指DiskFileItem对象。
参考资料来源:百度百科-fileupload
在JSP中,创建ServletFileUpload对象的方法是
这个需要在jsp页面中引入import org.apache.commons.fileupload.*;
然后直接用里面的ServletFileUpload构造方法来实例化这个对象。
比如可以这么写:
ServletFileUpload upload = new ServletFileUpload(diskFactory);
try{
DiskFileItemFactory diskFactory = new DiskFileItemFactory();
// threshold 极限、临界值,即硬盘缓存 1M
diskFactory.setSizeThreshold(4 * 1024);
// repository 贮藏室,即临时文件目录
diskFactory.setRepository(new File(tempPath));
ServletFileUpload upload = new ServletFileUpload(diskFactory);
// 设置允许上传的最大文件大小 4M
upload.setSizeMax(4 * 1024 * 1024);
// 解析HTTP请求消息头
List fileItems = upload.parseRequest(req);
Iterator iter = fileItems.iterator();
while(iter.hasNext())
{
FileItem item = (FileItem)iter.next();
if(item.isFormField())
{
System.out.println("处理表单内容 ...");
processFormField(item, pw);
}else{
System.out.println("处理上传的文件 ...");
processUploadFile(item, pw);
}
}// end while()
pw.close();
}catch(Exception e){
System.out.println("使用 fileupload 包时发生异常 ...");
e.printStackTrace();
}// end try ... catch ...
servletfileupload类没有parsereqest方法,怎么办
解决办法如下
重写struts2拦截器对request的parser操作,具体实现如下
1)在struts2.xml里面定义,class是自定义的类,里面可以什么都没有,但一定要重新parser函数。里面不写任何东西
2)在struts2xml定义一个常量。
解决办法2:
修改web xml里面struts2拦截器配置,将mapping映射改为action
还有一种不算是解决办法,可能你的请求表单里面有个name名为名为name,目前未发现这种问题,重新定义下这个name。
struts上传为空的原因是struts2拦截器对混合表单进行拦截,将混合表单的request转换为了普通表单的请求。
以上就是servletfileupload的相关信息介绍,希望能对大家有所帮助。
本文到此结束,希望对大家有所帮助呢。
上一篇:维持保证金(什么是维持保证金)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |