struts2中的文件上传和下载

天下大事,必做于细。天下难事,必作于易。

曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果

再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础。

十分适合初学者!

jsp:页面

<!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data,

  不然就会以二进制文本上传到服务器端-->

  <form action="fileUpload.action" method="post" enctype="multipart/form-data">

  

file: <input type="file" name="file"><br>

<input type="submit" value="submit">

</form>

上传action

public class FileUploadAction extends ActionSupport

{

private String username;

   //注意,file并不是指前端jsp上传过来的文件本身,而是文件上传过来存放在临时文件夹下面的文件

private File file;

//提交过来的file的名字

private String fileFileName;//必须是input中name值+FileName固定格式

//提交过来的file的MIME类型

private String fileContentType;//

public File getFile()

{

return file;

}

public void setFile(File file)

{

this.file = file;

}

public String getFileFileName()

{

return fileFileName;

}

public void setFileFileName(String fileFileName)

{

this.fileFileName = fileFileName;

}

public String getFileContentType()

{

return fileContentType;

}

public void setFileContentType(String fileContentType)

{

this.fileContentType = fileContentType;

}

@Override

public String execute() throws Exception

{

String root = ServletActionContext.getServletContext().getRealPath("/upload");//上传的文件的位置

InputStream is = new FileInputStream(file);//基于file创建一个文件输入流

OutputStream os = new FileOutputStream(new File(root, fileFileName));//创建输出流

System.out.println("fileFileName: " + fileFileName);

    // 因为file是存放在临时文件夹的文件,我们可以将其文件名和文件路径打印出来,看和之前的fileFileName是否相同

System.out.println("file: " + file.getName());

System.out.println("file: " + file.getPath());

byte[] buffer = new byte[1024];

int length = 0;

while(-1 != (length = is.read(buffer, 0, buffer.length)))//经典写入操作

{

os.write(buffer);

}

os.close();

is.close();

return SUCCESS;

}

}

这样就成功的将文件上传了,然后你就去看工程中上传的目录中有没有你的文件很遗憾没有,原因是它上传到tomcat/webapps工程中upload的目录中了.

下载

jsp页面

下载:

<a href="downloadAction?fileName=JAVA.doc">下载</a>

DownloadAction:

package com.iss.action;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class DownLoad extends ActionSupport {

private String fileName;//要下载的文件名

private String directory;//要下载的文件目录

public void setDirectory(String directory) {

this.directory = directory;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public InputStream getInputStream() throws FileNotFoundException {

String dir = directory + fileName;

System.out.println(dir);//输出的文件要下载的路径

// return ServletActionContext.getServletContext().getResourceAsStream(

// "/" +dir);//使用相对路径下载文件内容默认是和webRoot同一目录

return new FileInputStream(dir);//使用全局路径下载

}

@Override

public String execute() throws Exception {

System.out.println("fileName:" + fileName);

return SUCCESS;

}

}

struts.xml中的配置

<!--下载action -->

<action name="downloadAction" class="com.iss.action.DownLoad">

<!-- <param name="directory">/images/</param> -->下载路径为相对路径

<param name="directory">E:/wang/head/</param>下载路径为绝对路径

<result type="stream">//类型是stream类型注意

<!--指定下载文件内容的类型 -->

<param name="contentType">plain/text</param>

<!--inputName默认值inputStream -->

<!--默认值是inputStream指定文件的源头,根据这个配置,找getInputStream方法获得文件流-->

<param name="inputName">inputStream</param>

<!--动态文件获取 -->

<param name="contentDisposition">attachement;fileName="${fileName}"</param>

<!-- 指定下载文件的缓冲大小 -->

<param name="bufferSize">50000000</param>

</result>

<result name="input">error.jsp</result>

</action>

至此简单的文件读写已经完成!由于水平有限,还望不吝赐教!

struts2中的文件上传和下载,布布扣,bubuko.com

时间: 2024-12-26 15:18:19

struts2中的文件上传和下载的相关文章

笨鸟先飞之Java(一)--使用struts2框架实现文件上传和下载

不管是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个常用功能会有很多种解决方式,但是struts2的框架却能给我们一个比较简单的方式,下面就一起来看吧: 文件上传: 首先来看实现上传功能的表单,Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType=&q

Struts2学习总结——文件上传与下载

Struts2文件上传与下载 1.1.1新建一个Maven项目(demo02) 在此添加Web构面以及 struts2 构面 1.2.1配置Maven依赖(pom.xml 文件) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20

struts2中的文件上传,文件下载

文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交的FileUpload组件 核心类: FileItemFactory    FileItem的工厂 ServletFileUpLoad    servlet中文件上传的核心类 FileItem  封装了上传表单文件项的信息 在servlet中文件上传处理起来比较麻烦. struts框架对文件上传组件

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

Java中的文件上传和下载

文件上传原理: 早期的文件上传机制: 在TCP/IP中.最早出现的文件上传机制是FTP.他是将文件由客户端发送到服务器的标准机制. jsp中的文件上传机制: 在jsp编程中不能使用FTP的方法来上传文件,这是由jsp运行机制所决定的.jsp中通过将表单元素设置Method="post" enctype="multipart/form-data" 属性,让表单以二进制编码的方式提交,在接收次请求的Servelet中用二进制流来获取内容,从而实现文件的上传. 表单的en

JavaWeb中的文件上传和下载功能的内容就这么多

一.开发环境搭建 创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示: 二.实现文件上传 2.1.文件上传页面和消息提示页面 upload.jsp页面的代码如下: 1<%@ page language="java" pageEncoding="UTF-8"%> 2<!DOCTYPE HTML> 3<html> 4<head>

Java Web开发中的文件上传与下载

一.借助Struts2框架 1.环境搭建 1.1 导包:conmmons-fileupload-1.2.1.jar conmmons-io-1.4.jar 以及其他框架的jar包 2.页面:略 3.文件上传: 3.1 设计一个文件上传工具类:FileUploadUtils 1 public class FileUploadUtils{ 2 3 //文件要上传到的路径,可配置 4 @Resource 5 private String filePath; 6 7 private String cre

Struts2中实现文件上传的功能

1.首先得配置一下Struts得配置文件struts-xml: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 4 "http://struts.apache.org/dtds/struts-2

javaWeb中的文件上传下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru