jspSmartUpload注意点总结
send页面选择文件,recv页面使用SmartUpload进行上传;
注意点1:send页面中的
<form name="form1" method="POST" action="upload.jsp" ENCTYPE="multipart/form-data">
<tr>
<td width="30%">选择菜单</td>
<td width="70%">
<!--form中属性名不能带filename,否则接收页面取不到值,却会取到两个文件,很晕-->
<select name="selmenu">
<option value="1">菜单1</option>
<option value="2">菜单2</option>
</select>
</td>
</tr>
<tr>
<td width="30%">帮助文件</td>
<td width="70%">
<input type="FILE" name="FILE1" size="30">
</td>
</tr>
</form>
a.ENCTYPE="multipart/form-data" 此处必须要这样写;
b.form中属性名不能包含filename,否则接收页面取不到值,却会取到两个文件,很晕!!!
如以上页面中如果将select控件的名字改为selfilename,则在recv页面中用su.getRequest().getParameter("selfilename")取值时取到的值为null;
但用su.getFiles()时却取到两个文件;原因不明,可能是内部处理问题;
注意点2:recv页面中取send页面中post传递过来的参数,不能使用request.getParameter(""),使用的话会收到null值,一定要用su.getRequest().getParameter("");
2.使用jspSmartUpload下载时,页面中<%%>之外不能有空格、换行、或其他东西,下面页面1为正确代码,页面2为错误代码:(weblogic下测试,据说Tomcat下都正确,有空再测一下)
页面1:
<%@ page import="java.util.*,com.jspsmart.upload.*,java.io.*" errorPage="" %><%
String filename = request.getParameter("filename");
String path = session.getServletContext().getRealPath("/");
path += "/" + filename;
//新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
try{
//下载文件
su.downloadFile(path);
}catch(FileNotFoundException fe){
System.out.println("===============文件不存在===============");
out.println("<script language='javascript'>");
out.println("alert('文件不存在');");
out.println("</script>");
}
%>
页面2:
<%@ page import="java.util.*,com.jspsmart.upload.*,java.io.*" errorPage="" %>
<%
String filename = request.getParameter("filename");
String path = session.getServletContext().getRealPath("/");
path += "/" + filename;
//新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
try{
//下载文件
su.downloadFile(path);
}catch(FileNotFoundException fe){
System.out.println("===============文件不存在===============");
out.println("<script language='javascript'>");
out.println("alert('文件不存在');");
out.println("</script>");
}
%>
weblogic&jspsmart注意
本文总结了使用jspSmartUpload组件时需要注意的关键事项,包括表单设置、参数获取方式及文件下载时的页面编写技巧。

被折叠的 条评论
为什么被折叠?



