struts2图片上传完整代码包括jsp文件应该怎么写 都说明,能解决给50分
2个回答
展开全部
//action
package com.lxt008.struts2.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class FileUploadAction extends ActionSupport {
private static final int BUFFER_SIZE = 16 * 1024;
private File myFile;
private String contentType;
private String fileName;
private String imageFileName;
private String caption;
public void setMyFileContentType(String contentType) {
this.contentType = contentType;
}
public void setMyFileFileName(String fileName) {
this.fileName = fileName;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String getImageFileName() {
return imageFileName;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
private static void copy(File src, File dst) {
try {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src),
BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst),
BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
while (in.read(buffer) > 0) {
out.write(buffer);
}
} finally {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
System.out.println(fileName.substring(pos)+"8787");
return fileName.substring(pos);
}
@Override
public String execute() {
System.out.println(fileName+"===");
imageFileName = new Date().getTime() + getExtention(fileName);
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/UploadImages")
+ "/" + imageFileName);
copy(myFile, imageFile);
System.out.println(imageFile+"HZJ"+"==="+fileName+"=="+myFile);
return SUCCESS;
}
}
//jsp
<body>
<%--<s:fielderror/>--%>
<hr/>
<s:form action="fileUpload" method="POST" enctype="multipart/form-data">
<s:file name ="myFile" label ="Image File"/>
<s:textfield name="caption" label ="Caption"/>
<s:submit/>
</s:form>
</body>
//struts
<struts>
<package name="lxt" extends="struts-default">
<action name="fileUpload" class="com.lxt008.struts2.action.FileUploadAction">
<!-- <interceptor-ref name="fileUploadStack"/> -->
<interceptor-ref name="fileUpload">
<!-- 特别注意jpg图片要增加image/pjpeg,否则有可能上传不了 -->
<!-- 你可以先获取头部信息看看!!! -->
<param name ="allowedTypes">
image/bmp,image/png,image/gif,image/pjpeg,image/jpeg,image/jpg
</param >
<!-- 限制上传文件的大小,单位是字节 -->
<param name ="maximumSize">1024*1024</param >
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name ="input">/FileUpload.jsp</result>
<result name="success">/ShowUpload.jsp</result>
</action>
</package>
</struts>
//jsp用来显示刚上传的图片
<body>
<div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >
<img src ='UploadImages/<s:property value ="imageFileName"/>'/>
<br/>
<s:property value ="caption"/>
</div>
</body>
package com.lxt008.struts2.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class FileUploadAction extends ActionSupport {
private static final int BUFFER_SIZE = 16 * 1024;
private File myFile;
private String contentType;
private String fileName;
private String imageFileName;
private String caption;
public void setMyFileContentType(String contentType) {
this.contentType = contentType;
}
public void setMyFileFileName(String fileName) {
this.fileName = fileName;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String getImageFileName() {
return imageFileName;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
private static void copy(File src, File dst) {
try {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src),
BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst),
BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
while (in.read(buffer) > 0) {
out.write(buffer);
}
} finally {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
System.out.println(fileName.substring(pos)+"8787");
return fileName.substring(pos);
}
@Override
public String execute() {
System.out.println(fileName+"===");
imageFileName = new Date().getTime() + getExtention(fileName);
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/UploadImages")
+ "/" + imageFileName);
copy(myFile, imageFile);
System.out.println(imageFile+"HZJ"+"==="+fileName+"=="+myFile);
return SUCCESS;
}
}
//jsp
<body>
<%--<s:fielderror/>--%>
<hr/>
<s:form action="fileUpload" method="POST" enctype="multipart/form-data">
<s:file name ="myFile" label ="Image File"/>
<s:textfield name="caption" label ="Caption"/>
<s:submit/>
</s:form>
</body>
//struts
<struts>
<package name="lxt" extends="struts-default">
<action name="fileUpload" class="com.lxt008.struts2.action.FileUploadAction">
<!-- <interceptor-ref name="fileUploadStack"/> -->
<interceptor-ref name="fileUpload">
<!-- 特别注意jpg图片要增加image/pjpeg,否则有可能上传不了 -->
<!-- 你可以先获取头部信息看看!!! -->
<param name ="allowedTypes">
image/bmp,image/png,image/gif,image/pjpeg,image/jpeg,image/jpg
</param >
<!-- 限制上传文件的大小,单位是字节 -->
<param name ="maximumSize">1024*1024</param >
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name ="input">/FileUpload.jsp</result>
<result name="success">/ShowUpload.jsp</result>
</action>
</package>
</struts>
//jsp用来显示刚上传的图片
<body>
<div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >
<img src ='UploadImages/<s:property value ="imageFileName"/>'/>
<br/>
<s:property value ="caption"/>
</div>
</body>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询