基于Struts文件上传(FormFile)详解

 更新时间:2017年08月25日 08:34:05   投稿:jingxian  
下面小编就为大家带来一篇基于Struts文件上传(FormFile)详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Struts中FormFile用于文件进行上传

1.在jsp文件中进行定义

<form action="/StrutsFileUpAndDown/register.do" method="post" enctype="multipart/form-data">
 名字:<input type="text" name="name" />
 头像:<input type="file" name="file"/>
 <input type="submit" value="注册用户">
 </form>

2.在Form表单中定义FormFile

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.form;
 
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
 
/**
 * MyEclipse Struts
 * Creation date: 08-24-2017
 *
 * XDoclet definition:
 * @struts.form name="userForm"
 */
public class UserForm extends ActionForm {
 /*
  * Generated Methods
  */
 
 private String username;
 private FormFile file;
  
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public FormFile getFile() {
  return file;
 }
 public void setFile(FormFile file) {
  this.file = file;
 }
 
}

3.利用struts文件进行关联Form,关联以后

1)利用表单实例进行获取FormFile实例,在获取以后,我们可以通过FormFile获取上传文件的各种信息

UserForm userForm = (UserForm) form;
String username = userForm.getUsername();
FormFile file = userForm.getFile();
 
//通过formFile可以获取关于用户上传文件的各种信息
//用于获取文件名字
String fileName = file.getFileName();
//用于获取文件大小
int fileSize = file.getFileSize();

2)通过FormFile实例获取输入流,创建一个输出流,并且在代码中获取tomcat服务器的绝对路径

try {
 //获取输入流
 is = file.getInputStream();
 
 //得到输出流
 //1.得到file文件夹,上传到tomcat服务器后的绝对路径(file文件为新创建的文件夹)
 String filePath = this.getServlet().getServletContext().getRealPath("/file");
 //两个"//"的其中一个"/"为转义符
  os=new FileOutputStream(filePath+"\\"+fileName);
  
 int len=0;//表示读取的字节
 //做一个缓存,防止文件过大而造成错误
 byte[] buff=new byte[1024];
 while((len=is.read(buff))!=-1)
 {
  os.write(buff,0,len);
 }
 is.close();
 os.close();
}

以上这篇基于Struts文件上传(FormFile)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Map集合使用方法全面梳理

    Java Map集合使用方法全面梳理

    Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。一个键(key)和它对应的值构成map集合中的一个元素
    2022-04-04
  • 详解Lombok安装及Spring Boot集成Lombok

    详解Lombok安装及Spring Boot集成Lombok

    这篇文章主要介绍了详解Lombok安装及Spring Boot集成Lombok,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 动态代理模拟实现aop的示例

    动态代理模拟实现aop的示例

    下面小编就为大家带来一篇动态代理模拟实现aop的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望对大家有所帮助
    2017-11-11
  • springboot实现返回文件流

    springboot实现返回文件流

    这篇文章主要介绍了springboot实现返回文件流方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 浅谈fastjson的常用使用方法

    浅谈fastjson的常用使用方法

    下面小编就为大家带来一篇浅谈fastjson的常用使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • java数据结构图论霍夫曼树及其编码示例详解

    java数据结构图论霍夫曼树及其编码示例详解

    这篇文章主要为大家介绍了java数据结构图论霍夫曼树及其编码示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • SpringCloud 客户端Ribbon负载均衡的实现方法

    SpringCloud 客户端Ribbon负载均衡的实现方法

    Ribbon 是 Netflix 提供的一个基于 Http 和 TCP 的客户端负载均衡工具,且已集成在 Eureka 依赖中,这篇文章主要介绍了SpringCloud 客户端Ribbon负载均衡的实现方法,需要的朋友可以参考下
    2022-06-06
  • SpringBoot单元测试框架Mockito介绍及使用

    SpringBoot单元测试框架Mockito介绍及使用

    与集成测试将系统作为一个整体测试不同,单元测试更应该专注于某个类。所以当被测试类与外部类有依赖的时候,尤其是与数据库相关的这种费时且有状态的类,很难做单元测试。但好在可以通过“Mockito”这种仿真框架来模拟这些比较费时的类,从而专注于测试某个类内部的逻辑
    2023-01-01
  • JavaWeb开发中alias拦截器的使用方法

    JavaWeb开发中alias拦截器的使用方法

    本文给大家介绍在JavaWeb开发中alias拦截器的使用方法相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • 使用Spring MVC实现双向数据绑定

    使用Spring MVC实现双向数据绑定

    Spring MVC是一个广泛用于构建Java Web应用程序的框架,它提供了众多功能,包括双向数据绑定,在这篇文章中,我们将向Java新手介绍如何使用Spring MVC实现双向数据绑定,以及为什么这个特性如此重要,需要的朋友可以参考下
    2024-01-01

最新评论