php的web开发中关于上传文件的几种方法的总结

在php的web开发中,文件,图片,视频的上传是一个经常要用到的功能,而且涉及的知识面比较广,下面从几个不同的角度和技术层面来做一个详细的说明和总结。

注意:

在总结之前,请大家务必了解php.ini中的几个关于上传的关键配置值。

1.file_uploads
设为On,允许通过HTTP上传文件 
2.upload_tmp_dir
文件上传至服务器时用于临时存储的目录,如果没指定,系统会使用默认的临时文件夹(我的机器是/tmp)。

3.upload_max_filesize
允许上传文件大小的最大值,默认为2M。

4.post_max_size
Php可接收的post数据的最大值(包括表单里的所有值的总合),默认为8M。 
5.memory_limit
每个php所最占的最大内存数,这个值要大于允许上传的文件大小。

6.max_execution_time
每个php运行的最长时间(秒),默认30秒。

7.max_input_time
Php解析POST/GET数据的最长时间(秒),默认60秒。This sets the maximum time in seconds a scripts is allowed to parse input data, like POST and GET.It is measured from the mement of receiving all data on the server to the start of script execution.

其中很重要的是upload_max_filesize  和post_max_size 、memory_limit 必须要按照上传的文件设置合适,否则无法上传。

一、传统的php写的上传类。

写一个php的上传类,这个方法用到的知识全部是php的,而且技术的难点也不多。

     

  
       

//隐藏域。这里name必须设置成MAX_FILE_SIZE,其值就是上传文件的最大长度,单位是B,这里我限制成2M
                 
        < input type="submit" value="上传" name="B1">   
     

  
     
 

服务端利用php的$_FILES['file']['name']来获取文件后缀名,具体的代码自己查找资料看看,这里就不多说了。

总结;这个方法可以用来上传小于2M的文件或者是图片,基本的功能可以实现。

二、利用uploadify插件

这个是利用Jquery的上传插件,上传可以带进度条,容易配置。

官网:http://www.uploadify.com/,可以下载资料和文档,里面的各个参数的详解都很清楚,而且还有php的demo,参考一下就可以很快的开发。

总结:可以上传一些大文件,和图片,而且带进度条,可以多文件上传,在WEB中会经常用。


三、利用百度的webupload

WebUploader 是由 Baidu FEX 团队开发的一款以 HTML5 为主,FLASH 为辅的现代文件上传组件。在现代的浏览器里面能充分发挥 HTML5 的优势,同时又不摒弃主流IE浏览器,沿用原来的 FLASH 运行时,兼容 IE6+,iOS 6+, android 4+。采用大文件分片并发上传,极大的提高了文件上传效率。

官网:http://fex.baidu.com/webuploader/  同时网上也有很多的资料,不过开发起来会比较难一点,但是可以上传几个G的视频,还有上传图片可以预览,功能是非常强大的,只是开发的难度稍微大点。官网上也有demo,大家可以看看,试试。


四、swfupload的插件

这是一个jquery的上传插件,功能也非常强大,开发也比较容易,网上有很多的资料,大家可以自行查找。



总结:在web的开发中,本人建议可以使用uploadify和webupload这两个,真的很好用。

WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。

采用大文件分片并发上传,极大

你可能感兴趣的:(php)