欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-22 12:20:28
struts中formfile用于文件进行上传 1.在jsp文件中进行定义

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)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。