问题描述
我是Struts2的新手,正在尝试使用fileUploader拦截器.我将附加所有代码层
I am new to Struts2 and trying to do use fileUploader interceptor. I am attaching all my code layers
动作类(FileUploadAction)
package com.caveofprogramming.actions;
import java.io.File;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport{
private File fileUpload;
private String fileUploadContentType;
private String fileUploadFileName;
public String getFileUploadContentType() {
return fileUploadContentType;
}
public void setFileUploadContentType(String fileUploadContentType) {
this.fileUploadContentType = fileUploadContentType;
}
public String getFileUploadFileName() {
return fileUploadFileName;
}
public void setFileUploadFileName(String fileUploadFileName) {
this.fileUploadFileName = fileUploadFileName;
}
public File getFileUpload() {
return fileUpload;
}
public void setFileUpload(File fileUpload) {
this.fileUpload = fileUpload;
}
@Action( value = "/fileUpload",
results={@Result(name="success",location="/success.jsp"),
@Result(name="error",location="/error.jsp"),
@Result(name="input",location="/error.jsp")
},
interceptorRefs={
@InterceptorRef(
params={"allowedTypes","image/jpeg,image/jpg,application/zip",
"maximumSize","1024000"},
value="fileUpload"
),
@InterceptorRef("defaultStack"),
@InterceptorRef("validation")
}
)
public String execute(){
try{
return SUCCESS;
} catch(Exception e){
return ERROR;
}
}
public String display() {
return NONE;
}
}
error.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<s:fielderror/>
</body>
</html>
Success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Success
</body>
</html>
fileUpload.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<s:head />
</head>
<body>
<h1>Struts 2 <s:file> file upload example</h1>
<s:form method="post" enctype="multipart/form-data" action="fileUpload">
<s:file label="File One" name="fileUpload" />
<s:submit />
</s:form>
</body>
</html>
我不明白为什么会收到此错误
I am not understanding why I am getting this error
内容类型不允许:fileUpload" photography-104a.jpg""upload_37fbf440_169b_4687_af65_93c8c967256c_00000000.tmp"图像/pjpeg"
"Content-Type not allowed: fileUpload "photography-104a.jpg" "upload_37fbf440_169b_4687_af65_93c8c967256c_00000000.tmp" image/pjpeg"
尽管我上传的文件格式为".jpg".请帮助我
Although my uploading file format is ".jpg". Please help me
推荐答案
您收到此错误,可能是因为您不允许内容类型为image/pjpeg
的文件.使用 fileUpload
拦截器的参数来定义允许的MIME类型
You are getting this error probably because you don't allow files with content type image/pjpeg
. Use parameter of fileUpload
interceptor to define allowed MIME types
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/jpeg,image/pjpeg</param>
</interceptor-ref>
这篇关于Fileuploader拦截器Struts2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!