SSH框架中实现文件的上传功能

原文地址为: SSH框架中实现文件的上传功能

1.上传页面代码 upload.jsp

<body>
	 <form action="upload.action" method="post" enctype="multipart/form-data" > 
	     请选择需要上传的文件:<input type="file" id="dofile" name="file"/><br />
	     <input type="submit" id="btnupload" name="btnupload" value="开始上传">
	 </form>
  </body>


2.通过struts的控制跳转的action代码,将选择的文件通过流上传到项目目录下的upload文件夹中。

package com.boya.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class uploadAction extends ActionSupport { 
	
	     //上传文件存放路径 
	     private final static String UPLOADDIR = "/upload"; 
	     //上传文件集合 
	     private List<File> file; 
	     //上传文件名集合 
	     private List<String> fileFileName; 
	     //上传文件内容类型集合 
	     private List<String> fileContentType; 
	     public List<File> getFile() { 
	         return file; 
	     } 

	     public void setFile(List<File> file) { 
	         this.file = file; 
	     } 

	    public List<String> getFileFileName() { 
	        return fileFileName; 
	    } 

	     public void setFileFileName(List<String> fileFileName) { 
	         this.fileFileName = fileFileName; 
	     } 

	     public List<String> getFileContentType() { 
	         return fileContentType; 
	     } 

	     public void setFileContentType(List<String> fileContentType) { 
	         this.fileContentType = fileContentType; 
	     } 

	     public String execute() throws Exception { 
	    	 System.out.println(this.getFileFileName());
	         for (int i = 0; i < file.size(); i++) { 
	             //循环上传每个文件 
	             uploadFile(i); 
	         } 
	         return "success"; 
	     } 

	     //执行上传功能 
	     private void uploadFile(int i) throws FileNotFoundException, IOException { 
	         try { 
	             InputStream in = new FileInputStream(file.get(i)); 
	             String dir = ServletActionContext.getRequest().getRealPath(UPLOADDIR);
	             File fileLocation = new File(dir);
	             //此处也可以在应用根目录手动建立目标上传目录
	             if(!fileLocation.exists()){
	                 boolean isCreated  = fileLocation.mkdir();
	                 if(!isCreated) {
	                     //目标上传目录创建失败,可做其他处理,例如抛出自定义异常等,一般应该不会出现这种情况。
	                     return;
	                 }
	             }
	             String fileName=this.getFileFileName().get(i);
	             File uploadFile = new File(dir, fileName); 
	             OutputStream out = new FileOutputStream(uploadFile); 
	             byte[] buffer = new byte[1024 * 1024]; 
	             int length; 
	             while ((length = in.read(buffer)) > 0) { 
	                 out.write(buffer, 0, length); 
	             } 
	             in.close(); 
	             out.close(); 
	         } catch (FileNotFoundException ex) { 
	        	 System.out.println("上传失败!");
	             ex.printStackTrace(); 
	         } catch (IOException ex) { 
	        	 System.out.println("上传失败!");
	             ex.printStackTrace(); 
	         } 
	     } 
	 } 

转载请注明本文地址: SSH框架中实现文件的上传功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值