冲刺总结(finally)

冲刺总结(finally)

1.文件上传操作的具体实现

通过前端<input name="file" type="file" class="Style_upload" id="file">获取要传输的文件

 当用户点击“上传”的button后,再通过编写的JS函数处理文件跳到相应的JSP处理文件中

upload.jsp(部分代码)

 1 Date date = new Date();
 2             
 3             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
 4             
 5             String DiskUrl = request.getSession().getServletContext().getRealPath("/");
 6             SmartUpload su = new SmartUpload();
 7             
 8             su.initialize(pageContext);        
 9                 
10             try{
11              su.setMaxFileSize(1000*1024*5);
12              su.setTotalMaxFileSize(1000*1024*5);
13                 
14                 
15             su.upload();
16     
17             com.jspsmart.upload.File file = null;
18             
19             String filename ="";
20             
21             for (int i = 0; i < su.getFiles().getCount(); i++) {
22             
23             
24                 file = su.getFiles().getFile(i);
25                 
26                    filename = format.format(date)+"F"+"."+file.getFileExt();
27                                 
28                 if (!file.isMissing()){
29                 file.saveAs(DiskUrl+"\\upload\\"+filename,su.SAVE_PHYSICAL);

文件的上传使用了smartupload组件包,smartupload是由www.jspsmart.com网站开发的一套上传组件包,可以轻松的实现文件的上传及下载功能,smartupload组件使用简单、可以轻松的实现上传文件类型的限制、也可以轻易的取得上传文件的名称、后缀、大小等。 

smartupload本身是一个系统提供的jar包(smartupload.jar),用户直接将此包放到classpath下即可,也可以直接将此包拷贝到TOMCAT_HOME\lib目录之中。

文件上传步骤:

1.SmartUpload su = new SmartUpload(); //先用Smart初始化一个su对象用作文件的上传。

2.su.initialize(pageContext);//初始化上传操作。

3.su.setMaxFileSize(1000*1024*5);  su.setTotalMaxFileSize(1000*1024*5); //设置上传文件的大小限制

4.su.upload(); //上传准备

5.filename = format.format(date)+"F"+"."+file.getFileExt(); //设置文件名和文件后缀。

6.file.saveAs(DiskUrl+"\\upload\\"+filename,su.SAVE_PHYSICAL); //文件存储到相应的路径

(PS:

文件存储函数介绍: file.saveAs(destFilePathName,option);

destPathName为文件保存目录,option为保存选项,它有三个值,
分别是SAVE_PHYSICAL,SAVE_VIRTUAL和 SAVE_AUTO。
SAVE_PHYSICAL指示组件将文件保存到以操作系统根目录为文件根目录的 目录下,
SAVE_VIRTUAL指示组件将文件保存到以Web工程根目录为文件根目录的目录下,
而SAVE_AUTO则表示由组件自动选择。

2.遇到的问题及解决:

问题如何将文件存储到服务器的绝对路径上。

解决通过ServletContext接口中的方法获取到tomcat下web项目的存储路径,再利用file.saveAs函数存储文件。

一个servlet可以使用getServletContext()方法得到web应用的servletContext,即而使用getServletContext的一些方法来获得一些值。 

比如说getServletContext().getRealPath("/")来获得系统绝对路径,getServletContext().getResource("WEB-INF/config.xml")来获得xml文件的内容。

 

问题代码运行后在项目的指定文件夹上找不到文件(与上个问题有关系)

解决:通过myeclipe导入文件项目且运行后,项目运行的主体是在myeclipse tomcat自带的webapp夹下,而不是本身部署项目的地方。

 

 

posted @ 2020-11-29 22:05  睿智的河水  阅读(86)  评论(0编辑  收藏  举报