<!-- 隐藏的文件上传组件,点击IMPORT时让该DIV显示即可-->
<div id="upLoadForm" align="center" class="area" style="width:200 height:200 visibility:hidden">
<form name="upform" method="POST" enctype="multipart/form-data" target="myFrame"><!--target是为了能将处理于IFRAME中处理,实现无刷新-->
<input type ="file" name="file" id="file"/>
<input type="hidden" name="textDatasImport" value="tt"><!--隐藏域,用于传递前台文本框信息-->
<input type="button" value="上传" οnclick="handle('import')"/>
</form>
</div>
在HTML中插入此隐藏DIV
//打开上传窗口
function openUploadWin()
{
if(!bSelected)
{
window.alert("请选择要导出的区域!");
return;
}
upLoadForm.style.left=document.body.scrollLeft+document.body.clientWidth/2-100;
upLoadForm.style.top=document.body.scrollTop+document.body.clientHeight/2-100;
/*upLoadForm.innerHTML=" <form name="upform" method="POST" enctype="multipart/form-data">"
+"<input type ="file" name="file" id="file"/>"
+"<input type="button" value="上传" οnclick="handle('import')"/>"
+"</form>";
*/
upLoadForm.style.visibility="visible";
}
以上是让上传框显示的JS代码
document.upform.textDatasImport.value=value;//将值赋给上传文件隐藏文本框
init();
upLoadForm.style.visibility="hidden";
document.upform.action="importFromExcel";
document.upform.submit();
点击上传按钮,执行上代码,则会将前台的value赋给upform的hidden文本框textDatasImport,并在后台进行处理
得到此值的方法
要用到SMARTUPLOAD
SmartUpload upload = new SmartUpload();
try {
upload.initialize(this.getServletConfig(), request, response);
// 允许上传的文件类型
upload.setAllowedFilesList("doc,xls,");
// 拒绝上传的文件类型
upload.setDeniedFilesList("exe,bat,jsp");
// 允许上传文件的单个最大大小
upload.setMaxFileSize(1024 * 1024 * 20);
// 允许上传文件的最大大小总和
// 上传数据
upload.upload();
StringBuffer fullFileName = null;// 保存到服务器上的文件名(带路径)
File suFile = upload.getFiles().getFile(0);
fullFileName = new StringBuffer("data.xls");// 填写 文件的路径
suFile.saveAs(fullFileName.toString(), SmartUpload.SAVE_PHYSICAL);
} catch (Exception e) {
e.printStackTrace();
return;
}
//获得FORM是文件上传时的隐藏域传值问题
Request req = upload.getRequest();
String texts = (String) req.getParameter("textDatasImport"); //即可得到数据