struts1 文件上传至Server(基础应用)

文件上传在struts1中是比较有优势的。

文件上传概述:使用HTML表单上传一个或多个文件,必须把HTML表单的enctype设置为multipart/form-data,method的属性设置为post
形式为
<form action="提交的action路径" method="post" enctype="multipart/form-data">
.......jsp控件<input type="file" name="upload"/>
.......jsp控件<input type="text" name="description"/>
.......jsp控件<input type="submit" value="SUBMIT"/>
</form>
struts中的文件上传重点
1. 在jsp页面的文件上传表单里面用上html标签库的file标签
2. 建立ActionForm,设置每个上传的文件属性为FormFile类型
3. 在Action中获取上传文件,然后进行相应的处理

核心代码:
package com.mySoft.action;

import java.io.File;
import java.io.RandomAccessFile;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.mySoft.form.UploadForm;

public class UploadAction extends Action{


public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

UploadForm uploadForm = (UploadForm)form;
if(uploadForm!=null){
String description = uploadForm.getDescription();
FormFile formFile = uploadForm.getFormFile();
if(formFile!=null){
byte[] bytes = formFile.getFileData();
ServletContext servletContext = getServlet().getServletContext();
String path = servletContext.getRealPath("/WEB-INF");
String fileName = formFile.getFileName();
File uploadFile = new File(path,fileName);
RandomAccessFile raf = new RandomAccessFile(uploadFile,"rw");
raf.write(bytes,0,bytes.length-2);
raf.close();

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

}


程序分析:
struts会调用getFormFile获取上传的文件对象(FormFile对象),然后调用FormFile对象的getFileData()方法把上传文件解析成字节数组,再使用上传文件的文件名把这个字节数组重新保存为WEB-INF目录中的一个文件

FormFile类的方法

destory---------------------删除上传文件的内容
getContentType--------------返回上传文件的内容类型
getFileData-----------------把上传的文件返回为字节数组
getFileSize-----------------返回上传文件的名字
getInputStream--------------把上传文件返回成一个文件流形式
setContentType--------------设置上传文件的内容类型
setFileName-----------------设置上传文件的名称
setFileSize-----------------设置上传文件的大小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值