SmartUpload主要功能是上传文件
上传图片:可以通过smartUpload实现
1. 配置smartupload.jar文件
把smartupload.jar文件复制到C:/Program Files/Apache Software Foundation/Tomcat 5.0/common/lib文件夹下
2. 可以进行开发
此开发依然用form表单(test/smart文件夹下)
对于上传图片,因为一般图片都比较大,所以只能使用post提交方式
如果上传图片,则需要对表单的数据进行封装
如何封装:如下代码
<form action="sample01.jsp" method="post" ENCTYPE="multipart/form-data">//红色部分表示对数据进行了封装 选择要上传的文件 <input type="file" name="pic"> <input type="submit" value="上传">
</form> |
如果图片混合表单(输入用户名的表单)一起上传,会有什么问题
如果表单被封装,则无法使用request直接取得输入参数,如下代码
form action="sample02.jsp" method="post" ENCTYPE="multipart/form-data"> 输入名字 <input type="text" name="name"> 选择要上传的文件 <input type="file" name="pic"> <input type="submit" value="上传">
</form>
<jsp:useBean id="smart" scope="page" class="org.lxh.smart.SmartUpload"/>
//上面的是导入包
<%-- // 1、上传初始化 smart.initialize(pageContext) ; // 2、准备上传 smart.upload() ; // 3、保存上传的文件 smart.save("/upload"); --%> <% String name= request.getParameter("name");
%> <%=name%> 安了浏览和上传后,跳转到sample02.jsp会输出null,原因:表单被封被 输入的结果是: null 解决如下: |
这个方法是smart中的Request方法
String name= smart.getRequest().getParameter("name");
可以输出txt文件中的内容
实验:用户输入上传图片名称,上传后的名称由用户输入决定
但它的后缀不能改变,所以先改变它的后缀
在eclipse 中加入smartupload.jar包
首先建立一个test工程,再单击工程名右键找到属性/java构建路径/库添加外部JAR/浏览找到文件即可
su.getFiles().getFile(0).getFileExt();//取得扩展名称
保存文件:保存输入的文件名和扩展名
smart.getFiles().getFile(0).saveAs("/upload/"+name+"."+ext);
文件只有一个所以从0开始
附加:
servlet 中使用smartupload 组件/ response.setContentType("text/html;charset=gb2312");
|