Struts上传文件fileupload

fileUp.jsp上传文件的jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    

  </head>
  
  <body>
    	文件上传
    	<hr>
    	<s:form action="upload1" enctype="multipart/form-data">
    		<s:textfield name="title" label="文件标题"/><br>
    		<s:file name="upload" label="选择文件"/><br>
    		<s:submit value="上传"/>
    	</s:form>
  </body>
</html>

fileupsuccess.jsp上传成功跳转的jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    

  </head>
  
  <body>
    	<h2>文件上传成功!</h2>
    	<hr>
    	文件标题:<s:property value="title"/><br>
    	<s:property value="uploadFileName"/><br>
    	<img src="<s:property value="'save/'+uploadFileName"/>"/>
    	<br>
  </body>
</html>

UploadAction.action文件

package login;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport{

	private String title;//标题
	private File upload;//文件对象
	private String uploadFileName;//文件名
	private String savePath;//保存的路径
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public File getUpload() {
		return upload;
	}
	public void setUpload(File upload) {
		this.upload = upload;
	}
	public String getUploadFileName() {
		return uploadFileName;
	}
	public void setUploadFileName(String uploadFileName) {
		this.uploadFileName = uploadFileName;
	}
	public String getSavePath() {
		return ServletActionContext.getServletContext().getRealPath(savePath);//获取绝对路径并修改路径为自定义路径
	}
	public void setSavePath(String savePath) {
		this.savePath = savePath;
	}
	
	
	public String execute() throws Exception{
		FileOutputStream fos = new FileOutputStream(getSavePath()+"\\"+getUploadFileName());
		FileInputStream fis = new FileInputStream(getUpload());
		
		byte[] buffer = new byte[1024];
		int len = 0;
		while((len = fis.read(buffer))>0){
			fos.write(buffer);
		}
		fis.close();
		fos.close();
		return SUCCESS;
	}
}

很重要的struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.custom.i18n.resources" value="messages" /><span style="font-size:24px;">//</span>value是国际化资源配置文件的文件名
	<constant name="struts.i18n.encoding" value="utf-8" />
	<package name="I18N" extends="struts-default">
        <action name="upload1" class="login.UploadAction">
        <interceptor-ref name="fileUpload">
		<param name="maximumSize">10000000</param>
		<param name="allowedTypes">
			image/gif,image/png,image/jpeg,image/jpg,image/pjpeg
		</param>
	</interceptor-ref>
	<interceptor-ref name="defaultStack"/>
		
	<param name="savePath">./save</param><span style="color:#FF6666;">//这个是项目WebRoot目录下新建的文件夹save</span>

        <result name="input">/fileUp.jsp</result>
	<result name="success">/fileupsuccess.jsp</result>
	</action>
	</package>
</struts>    
总结:国际化配置资源文件名格式   文件名_语言种类_语言编码.properties  

例如  messages_zh_CN.properties   表示中文配置文件   messages_en_US.properties  英文配置文件

最重要的关系资源配置文件有效与否的是资源文件的路径问题    我今天调试了一下午查了各种资料都没有找出问题

刚刚将资源文件放在项目目录的src包下面就可以起作用了,切记,这是给我印象最深的一个了

我今天还遇到的一个问题就是<img src="<s:property value="'save/'+uploadFileName"/>"/>


value的值就是加载项目目录中保存图片的文件夹+文件名   save的路径一定要写对,否则即使上传成功也不能显示图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值