[JavaWeb基础] 009.Struts2 上传文件

在web开发中,我们经常遇到要把文件上传下载的功能,这篇文章旨在指导大家完成文件上传功能

1.首先我们需要一个上传文件的页面。

<!--在进行文件上传时,表单提交方式一定要是post的方式,
      因为文件上传时二进制文件可能会很大,还有就是enctype属性,
      这个属性一定要写成multipart/form-data,
     不然就会以二进制文本上传到服务器端
-->
<form action="fileUpload.action" method="post" enctype="multipart/form-data">
	用户名: <input type="text" name="username"><br><br>
        文件:    <input type="file" name="file"><br><br>
	           <input type="submit" value="提交">
</form>

2.然后我们要配置Struts2文件。

<action name="fileUpload" class="com.babybus.sdteam.action.FileUploadAction">
    <result name="success">/Success.jsp</result>
</action>

3.最后我们要有一个Action类来把上传的文件转存到服务器

    public String execute() throws Exception
    {
    	// 设置要上传的文件夹目录
        String root = ServletActionContext.getServletContext().getRealPath("/upload");
        // 根据上传的文件,创建输入流
        InputStream is = new FileInputStream(file);
        // 输出文件夹
        File outfloder = new File(root);
        // 输出文件
        File outfile   = new File(root, fileFileName);
        // 目录不存在创建目录
        if(!outfloder.exists()){
        	outfloder.mkdirs();
        }
        // 文件不存在创建文件
        if(!outfile.exists()){
        	outfile.createNewFile();
        }
        // 创建输出流
        OutputStream os = new FileOutputStream(outfile);

        // 接受数据用的临时字节数组
        byte[] buffer = new byte[500];
        int length = 0;
        // 遍历把内容写到输出文件中
        while(-1 != (length = is.read(buffer, 0, buffer.length)))
        {
            os.write(buffer);
        }
        // 关闭输出流,关闭输入流
        os.flush();
        os.close();
        is.close();
        // 返回结果跳转标识
        return SUCCESS;
    }

4.通过以上几步,我们就可以简单的实现了文件上传功能。

结语

  • 受益,掌握了Spring的初级应用

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)

转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4678977.html

时间: 2024-10-10 17:05:25

[JavaWeb基础] 009.Struts2 上传文件的相关文章

Struts2上传文件(1)

使用Struts框架后, Struts2框架不会处理multipart/form-data的请求,它需要调用其他的上传文件框架来解析二进制数据.但是Struts在原有的上传解析器基础上做了很多的封装,简化了文件上传.主要是在Struts核心包中的default.properties文件中的文件解析器,配置如下所示. # struts.multipart.parser=cos# struts.multipart.parser=pellstruts.multipart.parser=jakart 根

struts2 上传文件

web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

工作笔记4.struts2上传文件到server

本文介绍两种:上传文件到server的方式   一种是提交Form表单:还有一种是ajaxfileupload异步上传. 一.JSP中:     1.提交Form表单 为了能完毕文件上传,我们应该将这两个表单域所在表单的enctype属性设置为multipart/form-data. <form action="uploadFiles_fourInsuranceFirstUpload.action" method="post" enctype="mu

工作笔记4.struts2上传文件到服务器

本文介绍两种:上传文件到服务器的方式   一种是提交Form表单:另一种是ajaxfileupload异步上传. 一.JSP中:     1.提交Form表单 为了能完成文件上传,我们应该将这两个表单域所在表单的enctype属性设置为multipart/form-data. <form action="uploadFiles_fourInsuranceFirstUpload.action" method="post" enctype="multip

关于JavaWeb不使用框架上传文件的简单实现

好像最低支持3.0的JavaWeb项目: 前台页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="GBK"> 5 <title>测试上传</title> 6 </head> 7 <body> 8 <form action="/fileup/upTest" enctype="multipart

struts2上传文件

1.upload.java(java文件上传的读写方法) package com.OS.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import co

java struts2 上传文件范例

Struts2 default.properites属性文件相关说明 struts.i18n.encoding=UTF-8 国际化默认编码格式为UTF-8 struts.objectFactory = spring spring整合时需要使用 ### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data # struts.multipart.parser=cos # struts.

struts2上传文件,文件大小默认最大值的修改

<interceptor-ref name="fileUploadStack">                 <!-- 大小 -->                         <param name="fileUpload.maximumSize">10000000</param>                 <param name="fileUpload.allowedExtension

Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法

原因是没有设置存放临时文件的文件夹,而错误提示中的struts.multipart.saveDir就是设置临时文件夹的属性,把该配置写到struts.properties文件中即可,如下: struts.multipart.saveDir = /tmp 如果此文件夹不存在,Struts 2会自动创建一个. 也可以在struts.xml配置文件中添加一个常量设置: <constant name="struts.multipart.saveDir" value="/tmp&