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