关于servletfileupload的信息

http://www.itjxue.com  2023-01-08 07:04  来源:未知  点击次数: 

在servlet中怎样上传文件?

//新建一个Smartupload对象

SmartUpload su=new SmartUpload();

//上传初始化

su.initialize(pageContext);

//设定上传限度

//1.限定每个上传文件的最大长度

//su.setMaxFileSize(100000);

//2.限制总上传数据的长度。

//su.setTotalMaxFileSize(20000);

//3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。

//su.setAllowFilesList("doc,text");

//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件或没有扩展名的文件

//su.setDeniedDilesList("exe,bat,jsp,html,htm,,");

//上传文件

su.upload();

//将上传文件全部保存到指定目录

int count=su.save("/upload");

out.println(count+"个上传文件成功!br");

//利用Request对象获取参数之值

out.println("test="+su.getRequest().getParameter("test")+"brbr");

//逐一提取上传文件信息,同时可保存文件。

for(int i=0;isu.getFiles().getCount();i++)

{

com.jspsmart.upload.File file=su.getFiles().getFile(i);

//若文件不存在则继续

if(file.isMissing())

continue;

//显示当前文件信息

out.println("table border=1");

out.println("trtd表单项名(FiledName)/tdtd"+file.getFieldName()+"/tr/tr");

out.println("trtd文件长度(Size)/tdtd"+file.getSize()+"/tdtd");

out.println("trtd文件名(FileName)/tdtd"+file.getFileName()+"/tr/tr");

out.println("trtd文件扩展名(FiledExt)/tdtd"+file.getFileExt()+"/tr/tr");

out.println("trtd文件全名(FiledPathName)/tdtd"+file.getFilePathName()+"/tr/tr");

out.println("/tablebr");

//将文件另存

//file.saveAs("/upload/"+myFile.getFileName());

//另存到以web应用程序的根目录为文件根目录的目录下

//file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL);

//另存到操作系统的根目录为文件根目录的目录下

//file.safeAs("c://temp//"+myFile.getFileName(),su.SAVE_PHYSICAL);

}

上面就是了。。。。祝你好运哈!

servletfileupload类没有parsereqest方法,怎么办

解决办法如下

重写struts2拦截器对request的parser操作,具体实现如下

1)在struts2.xml里面定义,class是自定义的类,里面可以什么都没有,但一定要重新parser函数。里面不写任何东西

2)在struts2xml定义一个常量。

解决办法2:

修改web xml里面struts2拦截器配置,将mapping映射改为action

还有一种不算是解决办法,可能你的请求表单里面有个name名为名为name,目前未发现这种问题,重新定义下这个name。

struts上传为空的原因是struts2拦截器对混合表单进行拦截,将混合表单的request转换为了普通表单的请求。

java使用ServletFileUpload上传文件,ServletFileUpload.parseRequest(request)报错。

操作不允许,/trs/apache-tomcat-7.0.37/yy/kjcg/uploadtmp/upload__bf6b7e9_14520c5a8b9__8000_00000000.tmp不能创建。查查tomcat所属用户的/trs/apache-tomcat-7.0.37/yy/kjcg/uploadtmp目录写权限

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 ...

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章