`
weiweichen1985
  • 浏览: 140995 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

单文件上传

阅读更多
上传的表单method应设为post,enctype应设为multipart/form-data


--------------------------示例---------------------------------------
upload.jsp
=====================
<form action="upload.do?method=upload" method="post"
		enctype="multipart/form-data">
		select the file you wish to upload:
		<input type="file" name="file" />
		<br />
		<input type="text" name="name"/>
		<input type="submit" value="submit" />
		<input type="reset" value="cancel" />
	</form>
	<%
			if (request.getAttribute("result") != null) {
			out.println(request.getAttribute("result").toString());
		}
	%>


UploadForm.java
=====================
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.supersit.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/** 
 * MyEclipse Struts
 * Creation date: 10-23-2007
 * 
 * XDoclet definition:
 * @struts.form name="uploadForm"
 */
public class UploadForm extends ActionForm {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}
	
	private FormFile file;
	
	private String name;
	

	public FormFile getFile() {
		return file;
	}

	public void setFile(FormFile file) {
		this.file = file;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}


UploadAction.java
==========================
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.supersit.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.supersit.struts.form.UploadForm;
import com.supersit.struts.util.DateTime;
import com.supersit.struts.util.MD5;

/**
 * MyEclipse Struts Creation date: 10-23-2007
 * 
 * XDoclet definition:
 * 
 * @struts.action input="/upload.jsp"
 */
public class UploadAction extends DispatchAction {
	/*
	 * Generated Methods
	 */

	/**
	 * Method execute
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward upload(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		UploadForm uploadform = (UploadForm) form;

		String context = this.servlet.getServletContext().getRealPath("/");
		
		System.out.println("context="+context);

		org.apache.struts.upload.FormFile formfile = uploadform.getFile();
		java.io.InputStream is = null;
		java.io.OutputStream os = null;
		try {
			is = formfile.getInputStream();

			String ext=formfile.getFileName().split("\\.")[1];
			String filename = new MD5().getMD5ofStr(formfile.getFileName()
					+ new DateTime().getCurrentDate5())
					+ "." + ext;

			System.out.println("filename===" + filename);

			os = new FileOutputStream(context + "/photo/" + filename);

			byte[] bytes = new byte[8192];
			while ((is.read(bytes, 0, 8192)) != -1) {
				os.write(bytes, 0, 8192);
			}

			if (os != null)
				os.close();
			if (is != null)
				is.close();
			
			request.setAttribute("result", "上传成功");
			
			
			
			String name=uploadform.getName();
			
			name=new String(name.getBytes("ISO8859-1"),"utf-8");
			
			System.out.println("name==="+name);
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			request.setAttribute("result", "上传失败");
		} catch (IOException e) {
			e.printStackTrace();
			request.setAttribute("result", "上传失败");
		}

		return mapping.findForward("upload");
	}
}



struts-config.xml
=================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="uploadForm" type="com.supersit.struts.form.UploadForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      name="uploadForm"
      attribute="uploadForm"
      input="/upload.jsp"
      path="/upload"
      type="com.supersit.struts.action.UploadAction"
      validate="false" 
      parameter="method">
      <forward name="upload" path="/upload.jsp"></forward>
            </action>

  </action-mappings>

  <message-resources parameter="com.supersit.struts.ApplicationResources" />
</struts-config>

分享到:
评论

相关推荐

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...

    .net单文件上传

    标题中的".net单文件上传"指的是使用.NET框架(特别是ASP.NET)进行的单一文件上传功能。在.NET中,实现这个功能通常涉及到Web表单、HTML控件和服务器端的代码处理。VS2005(Visual Studio 2005)是微软开发的一款...

    SpringMVC单文件上传、多文件上传、文件列表显示、文件下载

    本文将详细讲解如何实现SpringMVC中的单文件上传、多文件上传、文件列表显示以及文件下载。 首先,我们需要理解SpringMVC处理文件上传的基本原理。在SpringMVC中,文件上传通常涉及到`CommonsMultipartResolver`...

    asp.net实现单文件上传

    在ASP.NET中,单文件上传是一项常见的功能,用于允许用户通过网页将本地计算机上的单个文件上传到服务器。本文将详细讲解如何实现这一功能,并提供相关的源代码。 首先,我们需要在HTML页面上创建一个`&lt;input&gt;`标签...

    ASP.NET多文件上传,单文件上传,很好用【源代码】

    在这个主题中,我们将探讨ASP.NET中的文件上传功能,包括单文件上传和多文件上传,这在开发涉及用户交互并需要提交文件的Web应用时非常常见。源代码是由Visual Studio 2005编写的,这是一个强大的开发环境,支持ASP...

    C#单文件上传

    在本教程中,我们将探讨如何使用HTML控件实现单文件上传功能,并通过C#后端代码处理上传过程,同时实现类似AJAX的效果,使得文件上传无须页面刷新。 一、HTML控件与文件上传 在HTML中,`&lt;input&gt;`标签可以用来创建...

    SpringMVC单文件上传、多文件上传、文件列表显示、文件下载额

    本教程将深入探讨Spring MVC如何处理单文件上传、多文件上传、文件列表显示以及文件下载。以下是对这些知识点的详细说明: 1. **单文件上传**: 在Spring MVC中,单文件上传主要通过`@RequestParam("file") ...

    php-upload封装类上传文件,多单文件上传.zip

    本压缩包“php-upload封装类上传文件,多单文件上传.zip”提供了一个完整的PHP文件上传解决方案,包括单文件和多文件上传功能,并附带了演示示例。 核心知识点: 1. **PHP文件上传原理**:PHP通过`$_FILES`全局变量...

    element-ui+vue单文件上传和 多文件批量上传(多文件走一次接口).pdf

    本文将详细讲解如何使用Element UI与Vue.js实现单文件上传和多文件批量上传,且确保所有文件通过一个接口进行提交。 首先,我们需要安装Element UI库。在项目根目录下运行以下命令: ```bash npm install element-...

    兼容多个浏览器的单文件上传

    本项目"兼容多个浏览器的单文件上传"就是针对这个问题,提供了一种解决方案,确保在IE6、7、8这些低版本浏览器中也能实现类似现代浏览器的无刷新异步上传效果。 首先,我们来看文件上传的基本原理。在HTML中,`...

    android 文件上传(多个或单个),图片上传

    本文将深入探讨如何实现Android平台上的多文件和单文件上传,以及图片上传的实现细节。 ### 1. 文件上传基础 #### 1.1 获取文件 在Android中,用户可以选择文件,通常通过Intent的ACTION_PICK或者ACTION_GET_...

    phpcmsv9单文件上传功能_UTF8_phpcmsv9单文件上传功能_UTF8_piledqq_源码

    《PHPcmsV9单文件上传功能详解》 PHPcmsV9是一款基于PHP+MySQL开发的内容管理系统,它在网站建设和管理中提供了丰富的功能,其中单文件上传功能是其重要的组成部分之一。这一功能允许用户通过Web界面方便地上传各种...

    uniapp前端单文件上传JAVA后台接收实现(亲测)

    uniapp前端单文件上传JAVA后台接收实现(亲测),看了些文档,亲测了一天,后面还有多页面上传文档代码上传哦

    文件上传下载工具类单个文件上传多种形式下载文件

    文件上传下载工具类单个文件上传,多种传参形式下载文件

    单文件上传的C#源码

    单文件上传功能是网站常见的一种交互形式,允许用户将本地文件上传到服务器。本篇将详细讲解使用C#实现单文件上传的核心概念、步骤及关键代码。 1. **HTTP协议与文件上传** 文件上传基于HTTP协议的POST请求。在ASP...

    PHP多文件上传类,支持单个和多个文件上传

    首先,让我们了解一下文件上传的基本概念。在HTTP协议中,文件上传是通过POST请求来实现的,通常使用`multipart/form-data`编码类型。PHP提供了内置的全局数组`$_FILES`来接收上传的文件信息,包括文件名、临时存储...

    Java+Extjs实现单文件上传

    本话题主要关注如何使用Java后端和ExtJS前端框架来实现单文件上传的流程。下面将详细讲解这个过程涉及的关键知识点。 首先,我们来看Java文件上传。在Java中,处理文件上传主要依赖于Servlet API中的`Part`接口,这...

    spring boot多文件上传、单文件上传、Excel解析.rar

    在Spring Boot框架中,文件上传是一项常见的功能,无论是单文件上传还是多文件上传,都能方便地集成到项目中。Spring Boot提供了对MultipartFile接口的支持,使得处理文件上传变得简单易行。下面将详细介绍如何实现...

Global site tag (gtag.js) - Google Analytics