您的位置:首页 > 编程语言 > Java开发

黑马程序员--Struts2.3.7技术的汇…

2015-12-24 10:27 369 查看
--------期待与您交流------

 

package cn.itcast.web.struts.actions;

import java.io.File;

import java.io.IOException;

import org.apache.commons.io.FileUtils;

import org.apache.struts2.ServletActionContext;

public class FileUploadAction {

 // photo,是jsp表单的字段名称,FileName是固定写法,需要提供set和get方法;

 private String[] photoFileName;

 // photo是jsp表单的字段名;

 private File[] photo;

 public String[] getPhotoFileName() {

  return photoFileName;

 }

 public void setPhotoFileName(String[] photoFileName) {

  this.photoFileName = photoFileName;

 }

 public File[] getPhoto() {

  return photo;

 }

 public void setPhoto(File[] photo) {

  this.photo = photo;

 }

 public String execute() {

  // 首先在服务器目录下创建一个目录,存放客户端上 的文件;然后获取这个服务器的实际路径,然后将服务器上 的文件

  if (photo != null) {

   @SuppressWarnings("deprecation")

   String realPath = ServletActionContext.getRequest().getRealPath(

     "/photo");

   File realDir = new File(realPath);

   if (!realDir.exists()) {

    realDir.mkdirs();

   }

   for (int i = 0; i < photo.length; i++) {

    // 创建文件用于接收 送的文件;

    File destFile = new File(realDir, photoFileName[i]);

    try {

     //将客户端的文件拷贝到服务器文件;

     FileUtils.copyFile(photo[i], destFile);

    } catch (IOException e) {

     ServletActionContext.getRequest().setAttribute("message",

       "服务器出现异常");

     return "input";

    }

   }

   //上 成功则在request中存储一个 记

   ServletActionContext.getRequest().getSession().setAttribute("message",

     "上 成功");

   return "message";

  }

  return "message";

 }

}

 


文件上 功能比较简单,只要注意要在表单页面设置属性enctype="multipart/form-data",已经action类中定义好属性名。

服务器目录下要定义相关目录;

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>上 照片</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">   </head>  <body>    <s:form action="fileupload" enctype="multipart/form-data" namespace="/itcast">     文件一:<input type="file" name="photo"/><br />     文件二:<input type="file" name="photo"/><br />     文件三:<input type="file" name="photo"/><br />     <input type="submit" value="上 "/>     <input type="reset" value="重置"/>    </s:form>  </body></html>

转发至微博
 转发至微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: