前几天,介绍了PHP上传文件,应该说是普通模式上传文件。在网速畅通,上传的文件不大的情况下普通模式看起来还是很使用的。但如果要上传很大的一个文件,假如说几百兆,一部电影等等。那普通模式就有点欠缺了,因为上传大文件通常时间长,如果页面长时间处于处理状态用户会误以为死机了,然后直接把网页关掉,结果上传到一半的文件被终止了。
如果使用Flash
来实现上传,这样不仅可以计算上传所需时间,上传进度,状态等等,还可以在浏览器端就能判断文件的大小。所以今天介绍如何使用SWFUpload
组件上传文件,大家可以到官网下载SWFUpload程序。这里就不在赘述的介绍SWFUpload
的特性了
SWFUpload
- 下载SWFUpload部署到服务器WebServer目录下
- 给file文件夹777权限
- 直接用浏览器打开
index.php
页面
配置
- 在
index.php
中找到file_size_limit : "100 MB"
这个是前端限制上传文件的大小,什么是前端限制大小呢?就是说当用户选择文件后,Flash先获取文件信息,然后根据此设置值来判断是否超过大小,如果超过则直接给出提示。 - 在
index.php
中找到file_types_description : "All Files"
这个是前端限制允许上传类型,原理同上。
前端安全监测优势
前端限制意思就是说在客户端就直接给判断了,而不需要把文件上传到服务器,由服务器来判断。由于是浏览器端判断所以判断结果是不够安全得,结合Flash做到前端判断是非常完美的一件事,这样就很大程度上减少服务器压力。
结合Flash与JavaScript上传特点,童鞋们可以在JavaScript中加入自己需要的功能,比如文件名关键字过滤 ,上传成功后做的操作,比如写库等等。
常见错误
404
: 打开index.php
找到flash_url
与upload_url
都设置成绝对URL地址500
:- 在upload.php中找到
$extension_whitelist = array("doc", "txt", "jpg", "gif", "png","sql");
这个数组,数组里边是允许上传文件类型,如果需要增加类型或去掉类型可以修改此数组。 - 在upload.php中找到
$max_file_size_in_bytes = 2147483647
这个变量,允许上传文件的大小,单位是字节,自己换算。 - 在upload.php中找到
$save_path = getcwd() . "/file/";
变量,这个是上传目录,检查上传目录是否给了777权限 ,其中默认路径就是当前路径下的file目录,可自行修改。 - 服务器错误导致,检查服务器代码吧!
- 在upload.php中找到