千万注意:一定要注释掉springmvc配置文件里面关于文件上传的代码,不然获取不到要上传的文件列表!!!!折腾死了
这个周中午闲暇的时候研究了一下uploadify插件的使用,主要是想要实现一个附件上传的功能,看之前公司同事好像用过这个插件,但是见人家挺忙的,我只能找到她写的源码自己研究了,好来,话不多说,先把实现的效果贴出来给大家看看:
这是还未点击上传附件的界面(图:1)
当点击选择附件界面会弹出文件选择对话框如下:
选择好要上传的文件点击打开按钮,文件开始上传:
上传完成之后界面如下(上传进度条消失):
**由上面的效果图可以看出我做的这个附件上传整体效果是:
点击附件上传按钮–>选择要上传的文件–>上传文件—>显示上传文件的文件列表**
(一)、下载uploadify插件
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,下面我用jsp+servlet简单实现了这个功能,你可以通过下面我分享的连接下载uoploadify文件:
下载jsp版本uploadify(我自己使用的文件)
(二)、下载插件安装包后,可以看到里面文件夹的几个主要文件:
(1)jquery.uploadify.js:完成上传功能的脚本文件,在调用页面引用(上传插件)
(2)uploadify.css:上传控件样式表,外观样式表
(3)uploader.swf:上传控件的主体文件,flash控件
(4)jquery.uploadify.min.js:压缩版的上传插件,部署时使用
(三)、项目环境介绍
我是在myeclipse下创建的java web的maven项目,搭建了springMVC的框架
说到这里我们需要的uploadify插件和运行环境就准备好了,我想很多人和我一样在最开始肯定会想到我们平时上传附件的时候一些场景,比如说我们上传资料到百度云盘时候的过程ps:如果想不起来可以自己去百度云盘上传文件体验一次,哈哈,可能不同的的人在思考上传附件这个功能的实现的时候会有不同的问题或者想法,就我来说我当时其实最好奇的是上传的附件到底最后是上传到了哪里,如果是上传到自己本地,肯定第不可能的,因为这样的话换台电脑找不到对应的位置上传肯定就会出问题,我想这个存放文件的地方一定是不管在哪里都可以访问的到的,因为文件上传了必然会存在一个文件下载的过程,我们在访问网页的时候会看到有很多地址链接,你一点击就会把相应的文件下载下来,这背后肯定就会有一个地址是我们下载对应文件的路径,知道了路径我们才能下载,但是想到这里我还是不知道要怎么做,不知道笔者们有没有人也思考过这个问题,因为我对java算是新手入门,项目经验很浅,对我来说这还真的算是个小白,怀着疑问我又赶紧上网查资料,可是却没有找到我觉得有价值的信息,郁闷了好一会儿,突然想起来我手上还有源码呢,赶快去里面找找有没有什么线索,果然皇天不负有心人,我发现了一个在src/main/resources/目录下有一个名叫:ftpconfig.properties的文件,我顺着这个文件继续钻,发现同事是把上传的附件存放在ftp服务器上面的,然后百度了ftp服务器的相关资料惊喜的发现了:原来我们可以创建一个远程ftp服务器,然后在连接ftp服务器,在登陆ftp服务器,登陆成功就可以将文件上到这个服务器,关于ftp服务器相关的资料童鞋们可以自己问问度娘,哈哈,一般来说公司有上传文件需求的都会创建自己的ftp服务器供大家使用,总之如果你要在项目中要连接ftp服务器你需要实现一下步骤:
(1)、ftpconfig.properties文件配置一些ftp服务器中的参数信息:
(2) 在ReadIniInfo类中对ftp.properties的加载处理,并初始化ftp连接,并建立连接
ReadIniInfo.java:
/**
*
* @描述: 读取配置文件
*/
public class ReadIniInfo {
private InputStream is;
private Properties properties;
//初始化配置文件
public ReadIniInfo() {
properties = new Properties();
//读取配置文件:ftpconfig.properties
is = this.getClass().getResourceAsStream("/ftpconfig.properties");
try {
properties.load(is);
} catch (FileNotFoundException e) {
System.out.println("配置文件不存在..");
e.printStackTrace();
} catch (IOException e) {
System.out.println("读取配置文件错误:" + e.getMessage());
e.printStackTrace();
} finally {
try {
if (null != is) {
is.close();
}
} catch (IOException e) {
System.out.println("关闭链接失败..");
e.printStackTrace();
}
}
}
/**
* 获取FTP服务器地址
*/
public String getFtpServer() {
return properties.getProperty("ftpServer");
}
/**
* 获取FTP服务器端口
*/
public String getFtpPort() {
return properties.getProperty("ftpPort");
}
/**
* 获取FTP用户账号
*/
public String getFtpUser() {
return properties.getProperty("ftpUser");
}
/**
* 获取FTP用户密码
*/
public String getFtpPwd() {
return properties.getProperty("ftpPwd");
}
/**
* 获取ftp目的地仓库地址
*/
public String getFtpRemotePath() {