`
swingboat
  • 浏览: 61830 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

在struts框架下实现文件的上传

    博客分类:
  • java
阅读更多

由于jspsmartupload上传文件,当前端页面没有file控件时,后端用jspsmartupload控件upload时将会走入一个死循环。现在采用struts自己提供的功能实现文件的上传。
1、前端页面upload.jsp
<html:form action="/filesave.do" styleId="formItem" method="post"  enctype="multipart/form-data">
<INPUT  class='input-file' type="file" name="theFile">
</html:form>
2、struts-config.xml文件配置
<form-bean name="UploadForm" type="yhp.test.web.UploadForm" />
<action input="/upload.jsp" name="UploadForm"   path="/filesave" scope="request" type="yhp.test.web.UploadAction" validate="false">
      <forward name="success" path="/success.jsp" />
      <forward name="error" path="/error.jsp" />
    </action>
3、UploadForm.java文件
package yhp.test.web;

import org.apache.struts.upload.FormFile;
import org.apache.struts.action.ActionForm;

public class UploadForm extends ActionForm {
  protected String theText;   //使用protected ,其它需要上传的form可以继承此form
  protected boolean writeFile = true;
  protected FormFile theFile;
  protected String filePath;

  public String getTheText() {
    return theText;
  }
  public void setTheText(String theText) {
    this.theText = theText;
  }
  public FormFile getTheFile() {
    return theFile;
  }
  public void setTheFile(FormFile theFile) {
    this.theFile = theFile;
  }
  public void setWriteFile(boolean writeFile) {
    this.writeFile = writeFile;
  }
  public boolean getWriteFile() {
    return writeFile;
  }
  public void setFilePath(String filePath) {
    this.filePath = filePath;
  }
  public String getFilePath() {
    return filePath;
  }
  public void reset() {
    writeFile = false;
  }
}

4、UploadAction.java文件
package yhp.test.web;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;


public class UploadAction extends Action {
  public ActionForward execute(ActionMapping actionMapping,
                               ActionForm actionForm,
                               HttpServletRequest httpServletRequest,
                               HttpServletResponse httpServletResponse) throws
      Exception {
    if (actionForm instanceof UploadForm) {
      // 获取上传的目录
      String path = getServlet().getServletContext().getInitParameter("UPLOADPATH");
      File f = new File(path);
      if (!f.isDirectory()) {
        f.mkdir();
      }

      UploadForm theForm = (UploadForm) actionForm;
      String text = theForm.getTheText();
      FormFile file = theForm.getTheFile();
      String fileName = file.getFileName();
      String contentType = file.getContentType();
      boolean writeFile = theForm.getWriteFile();
      String desFileName=path fileName ;
      String size = (file.getFileSize() + " bytes");
      try {
          InputStream stream = file.getInputStream();
   OutputStream bos = new FileOutputStream(strFileName);         
          byte[] buffer = new byte[file.getFileSize()];
          stream.read(buffer);
          bos.write(buffer);
   stream.close(); 
          bos.close();
          return actionMapping.findForward("success");
      }
      catch (FileNotFoundException fnfe) {
          return actionMapping.findForward("success");
      }
      catch (IOException ioe) {
          return actionMapping.findForward("success");
      }
      catch(Exception eo){
          return actionMapping.findForward("error");
      } 
    }else{
      return actionMapping.findForward("error");
    }
  }
}

分享到:
评论

相关推荐

    struts2框架下的文件上传

    本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是Struts2提供的一种简单易用的文件上传方式。它通过Struts2的`FileUploadInterceptor`...

    用Struts框架实现多文件上传功能(初学者的入门项目案例)

    在本项目中,我们将学习如何利用Struts框架实现多文件上传的功能,这对于初学者来说是一个很好的实践项目,能够帮助理解和掌握Struts的核心概念。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及到...

    struts框架写的文件上传下载系统

    5. **安全性考虑**:在实现文件上传下载功能时,需要注意防止SQL注入、跨站脚本攻击(XSS)以及文件路径遍历攻击。对于上传的文件,应检查其扩展名和内容,确保它们不包含恶意代码。同时,下载时应避免直接暴露文件...

    struts文件上传示例

    在这个"Struts文件上传示例"中,我们将深入探讨如何在Struts框架下实现文件上传功能,以及相关的关键知识点。 首先,理解文件上传的基本流程至关重要。在Web应用中,用户通过表单选择本地文件,然后提交到服务器。...

    struts框架-文件上传下载

    在Struts框架中,文件上传和下载是常见的功能需求,尤其在处理用户数据交互时。 一、文件上传 1. Struts1中的文件上传:在Struts1中,文件上传主要依赖于`commons-fileupload`和`commons-io`两个库。首先需要在`...

    Struts2框架实现文件上传

    在Struts2中实现文件上传,可以帮助开发者处理用户从浏览器端上传的文件,例如图片、文档等。以下是关于Struts2文件上传的详细知识点: 1. **依赖库**: 实现文件上传,首先需要引入Struts2的上传插件,即`struts2...

    struts与hibernate实现文件的上传与动态下载

    通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...

    用Struts框架实现单文件上传功能(初学者的入门项目案例)

    本项目案例“用Struts框架实现单文件上传功能”旨在帮助初学者掌握如何在Struts框架下处理文件上传的需求,这对于理解和实践Java Web开发中的常见操作非常有帮助。 首先,我们需要理解Struts框架的核心组件。Action...

    Struts-文件上传下载.rar

    总的来说,"Struts-文件上传下载.rar"这个压缩包可能包含了一个完整的示例,演示了如何在Struts框架下实现文件上传和下载的功能。通过学习和分析其中的代码,开发者可以更好地理解Struts框架处理文件操作的机制,...

    Struts+swfupload实现文件上传功能

    2. **创建Struts Action**:在Struts框架中,我们需要创建一个Action类来处理文件上传请求。这个Action需要实现文件接收和保存的功能。在Struts配置文件(struts.xml)中,为该Action定义一个对应的URL映射。 3. **...

    struts-文件上传

    在"struts-文件上传"这个主题中,我们将探讨如何在Struts框架下实现文件上传功能,这是Web应用中常见的需求,比如用户可能需要上传图片、文档等。 文件上传通常涉及到以下几个关键步骤: 1. **表单设计**:在HTML...

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    Struts框架文件上传下载案例

    在这个“Struts框架文件上传下载案例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于Web应用来说是非常常见的需求。 文件上传功能是Web应用中允许用户从本地计算机选择文件并将其传输到...

    struts框架下的文件上传下载

    7. **安全考虑**:在实现文件上传时,务必注意安全性,避免文件覆盖、恶意文件上传等问题。可以对上传的文件名进行重命名,防止覆盖现有文件,对文件类型进行检查,禁止上传危险文件如`.jsp`、`.exe`等。 8. **性能...

    struts1.2下实现文件上传进度条

    为了实现在Struts 1.2框架下的文件上传进度条功能,本案例使用了以下技术栈: 1. **Java版本**:1.5.x(兼容性设置为1.4) 2. **IDE**:MyEclipse 5.1.1 3. **框架**: - **SpringSide**:2.0-RC1-allinone包 - **...

    struts实现的文件上传下载功能

    3. **Struts配置**:在`struts-config.xml`中配置对应的`&lt;action&gt;`元素,指定处理文件上传请求的`Action`类。 4. **Action类**:编写`Action`类,处理文件上传请求。这里需要使用第三方库如Apache Commons ...

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    ssh框架用struts2 hibernate实现图片的上传源码

    以上就是SSH框架中使用Struts2和Hibernate实现图片上传的主要知识点,涵盖了Web请求处理、ORM框架、文件上传、数据库操作以及前端交互等多个方面。实际项目开发时,还需要结合具体的业务需求和安全规范进行详细设计...

    在Struts 2中实现文件上传

    在Struts 2框架中,文件上传功能的实现主要依赖于`CommonsFileUpload`组件。`CommonsFileUpload`通过将HTTP请求中的数据部分保存到服务器端的临时文件夹中,再由Struts 2框架的`fileUpload`拦截器处理这些临时文件,...

    struts1实现文件上传

    在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### Struts1框架简介 Struts1是Apache Struts的...

Global site tag (gtag.js) - Google Analytics