论坛首页 Java企业应用论坛

commons.fileupload上传文件流(turbine框架)

浏览 3367 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-01  
//引入这两个包,该例子适用于turbine框架下http形式上传
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;

import java.io.File;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import org.apache.turbine.util.RunData;
import org.apache.velocity.context.Context;

import com.hc360.b2b.netWorker.ParamUtils;
import com.hc360.web3ms.business.util.BusinessFactory;



public void doPerform(RunData runData, Context context) throws Exception {
	HttpServletRequest request = runData.getRequest();
	DiskFileUpload diskFileUpload = new DiskFileUpload();
	// 允许文件最大长度,设置上传文件最大为 100M
	diskFileUpload.setSizeMax(100 * 1024 * 1024);
	// 设置内存缓冲大小
	diskFileUpload.setSizeThreshold(4096);
	// 设置临时目录,该目录是上传数据流超过上面内存定义的大小的流存放在下面的路径上
	diskFileUpload.setRepositoryPath(request.getRealPath("/")+"ExcelUpLoadTemp");
	FileItem fileItem = runData.getParameters().getFileItem("fileName");//针对Turbine框架定义数据流
	//如果没有数据流存在
	if (fileItem.isFormField()) {
	} else {
		// 当前是一个上传的文件
		fileItem.write(new File(request.getRealPath("/")+"ExcelUpLoadTemp/1.xls"));//指定数据流存放位置其中request.getRealPath("/")是web根目录
	}
}

 注意,在前台HTML页面中一定要有<form id="grouptradepp_manage" method="post" action="" name="grouptradepp_manage" enctype="multipart/form-data">
而且必须要有file控件,
注意:通过二进制流的格式提交表单的时候,在Turbine框架中必须要用RunData形式获得参数,而不是requset形式,如:ParamUtils.getParameter(runData,"groupId")

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics