惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 摆渡人 外婆桥!

此BLOG不再继续了,请访问http://www.blogjava.net/swingboat 在Oracle中,快速获取一个部门以及它下面所有的子部门的方法。 cache模式的两种构成方式 OsWorkFlow学习(FSM:有限状态机) OsWorkFlow学习(概念) OsWorkFlow学习(数据库设置) 知识 - 摆渡人 外婆桥! 企业如何确定是否需要BPM(出自:计世网) jsp页面,以excel的方式输出 - 摆渡人 外婆桥! - 博客园 在jboss4环境下,URL查询参数中支持中文 - 摆渡人 外婆桥! - 博客园 使用Junit时源代码和测试代码的组织(摘自Daping_Zhang 的 Blog ) junit的使用 利用html中的div标签实现网页中某一块区域的自动滚动 struts及jstl使用问题集(一) 利用jspsmartupload上传文件,当我不选择文件就直接上传,会有什么结果呢?一个字“惨”啊! 软件工程中的经典案例! 利用edtftpj组件实现FTP文件的上传。 含有中文字符串的截取问题! 在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)
在struts框架下实现文件的上传
摆渡人 外婆桥! · 2005-06-06 · via 博客园 - 摆渡人 外婆桥!

由于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");
    }
  }
}