我尝试上传文件,但是每当我试图上传该文件并打印文件名时,我将获得null,并生成一个.tmp文件。我遵循了mkyong的“如何-to”的这里.I,在链接.Unfortunately中也尝试了一些建议,我仍然被困在这个问题上,并且假设我犯了一个我一直在忽略的错误,我正在使用tomcat7。以下是我的档案:
jsp
<s:form id="login" name="login" method="post" action="uploadResume" enctype="multipart/form-data">
<s:file name="uploadFile" label="Select a File to upload" size="40"/>
<s:submit value="submit" name="submit" />
</s:form>struts.xml
<constant name="struts.multipart.saveDir" value="/Users/shibasish/Documents/workspace/MSVenture/src/main/resources" />
<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume">
<interceptor-ref name="exception"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="fileUpload">
<param name="allowedTypes">text/plain</param>
<param name="maximumSize">10240</param>
</interceptor-ref>
<result name="success">/profile.jsp</result>
<result name="fail">/login.jsp</result>
<result name="index">/index.jsp</result>
<result name="login">/talent.jsp</result>
</action>动作类
private File uploadFile;
private String uploadFileFileName;
public String uploadResume(){
try{
String filePath = "/Users/shibasish/Documents";
System.out.println("Server path:" + filePath);
System.out.println("File Name:" + uploadFileFileName);
File fileToCreate = new File(filePath, uploadFileFileName);
FileUtils.copyFile(uploadFile, fileToCreate);
}catch(Exception e){}
return "success";
}
public File getUploadFile() {
return uploadFile;
}
public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}
public String getUploadFileFileName() {
return uploadFileFileName;
}
public void setUploadFileFileName(String uploadFileFileName) {
this.uploadFileFileName = uploadFileFileName;
}pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>请注意,在课堂上设置了变异器。
发布于 2015-08-19 20:41:11
我尝试了一个更完整的拦截器栈,它运行得很好。我已经将以下内容从文件上传到defaultStack拦截器:struts.xml
<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume">
<interceptor-ref name="defaultStack">
<param name="fileUpload.allowedTypes">text/plain</param>
</interceptor-ref>
<result name="success">/profile.jsp</result>
<result name="fail">/login.jsp</result>
<result name="index">/index.jsp</result>
<result name="login">/talent.jsp</result>
</action>https://stackoverflow.com/questions/32104442
复制相似问题