测试webwork的文件上传,用一个web项目来试验,现在上传的效果是,无论选择什么类型的文件,服务器上保存的文件名都是.tmp这样的扩展名,如何使服务器上保存的文件名与原始文件名(包括扩展名)一致,或者更进一步,让扩展名一致,前面是一个顺序编号的字符串?把几个文件的源代码贴出来,各位帮我看看吧,谢谢!!!
web.xml文件<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>webwork.properties文件
[code=INIFile]
webwork.multipart.parser=jakarta
webwork.multipart.maxSize=2097152
[/code]
上传文件的jsp文件:<%@ page contentType="text/html;charset=gb2312"%><html>
<form action="upload.action" enctype="multipart/form-data" method="post">
请选择要上传的文件:<input type="file" name="file">
<input type="submit" value="上传">
</form>
</html>xwork.xml文件<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"><xwork>
<include file="webwork-default.xml"></include>
<package name="default" extends="webwork-default">
<action name="upload" class="test.Upload">
<param name="directory">e:\upload\</param>
<result name="success">upload_success.jsp</result>
<interceptor-ref name="fileUploadStack"></interceptor-ref>
</action>
</package>
</xwork>action类文件:package test;import java.io.File;import com.opensymphony.xwork.ActionSupport;@SuppressWarnings("serial")
public class Upload extends ActionSupport { private String directory;
private File file;
public String getDirectory() {
return directory;
} public void setDirectory(String directory) {
this.directory = directory;
} public File getFile() {
return file;
} public void setFile(File file) {
this.file = file;
} public String getFilePath() {
return directory + file.getName();
} @Override
public String execute() throws Exception {
file.renameTo(new File(this.getFilePath()));
return SUCCESS;
}
}上传成功后的jsp页面:<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="ww" uri="/webwork" %><html>
文件上传成功,位置:<ww:property value="filePath"/>
</html>
web.xml文件<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>webwork.properties文件
[code=INIFile]
webwork.multipart.parser=jakarta
webwork.multipart.maxSize=2097152
[/code]
上传文件的jsp文件:<%@ page contentType="text/html;charset=gb2312"%><html>
<form action="upload.action" enctype="multipart/form-data" method="post">
请选择要上传的文件:<input type="file" name="file">
<input type="submit" value="上传">
</form>
</html>xwork.xml文件<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"><xwork>
<include file="webwork-default.xml"></include>
<package name="default" extends="webwork-default">
<action name="upload" class="test.Upload">
<param name="directory">e:\upload\</param>
<result name="success">upload_success.jsp</result>
<interceptor-ref name="fileUploadStack"></interceptor-ref>
</action>
</package>
</xwork>action类文件:package test;import java.io.File;import com.opensymphony.xwork.ActionSupport;@SuppressWarnings("serial")
public class Upload extends ActionSupport { private String directory;
private File file;
public String getDirectory() {
return directory;
} public void setDirectory(String directory) {
this.directory = directory;
} public File getFile() {
return file;
} public void setFile(File file) {
this.file = file;
} public String getFilePath() {
return directory + file.getName();
} @Override
public String execute() throws Exception {
file.renameTo(new File(this.getFilePath()));
return SUCCESS;
}
}上传成功后的jsp页面:<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="ww" uri="/webwork" %><html>
文件上传成功,位置:<ww:property value="filePath"/>
</html>
private String testFileName;//这个就是你原来的文件名
你的变量命名应该为fileFileName;这些事webWork2或Struts2 自己封装的,
还有一个fileFileContentType(xxFileContentType)为文件类型
(不确定中间的File要不要,有点忘了,即可能是fileContentType(xxContentType))
中临时保存的文件,上传成功后会自动删除掉的
有说在webwork.properties文件里面,设置webwork.multipart.maxSize的值就可以,可我测试怎么不行呢?2、如何设置允许上传和禁止上传的文件类型?
比如禁止上传exe可知性文件,只允许上传图片文件等等,这个如何配置?3、如何让文件名(扩展名前面的部分)按一定的顺序编号?
现在这样的程序,如果一个abc.zip这样的文件上传后,再来一个abc.zip的同名文件上传,虽然显示的是上传成功,但实际上是到临时目录那里晃一下又被删掉了。所以我想要解决这个问题,最好是把文件名按时间+流水号这样编号,该如何实现呢?这个问题可能如果比较复杂的话,提供个大致步骤也可以再次感谢!!