php---文件上传与下载,转自http://www.cnblogs.com/lazycat-cz/p/4113037.html
安全性能---水平不够 ╮(╯_╰)╭
文件上传--->就是将本地的文件上传到服务器上。(http协议有待学习)首先要在本地选择上传的文件,上传到服务器后,服务端又要做一些处理,为此客户端和服务端均要做一些设置
(客户端)文件上传最基本的方法是通过form表单进行post传递文件,先贴代码。
选择文件:
标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 multipart/form-data。
标签的 type=file 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
(服务端) 文件上传到了服务器上还要经过一些处理过程。在php中,$_post保存的是post传递的数据,而上传文件的相关信息保存在$_files里边,
_files[]是二维数组。array[uploadfile]键名取决于type=file标签中的的name值。它标记的是这个控件的上传文件信息,因此我们可以放多个上传控件,设置不同的name,当然设置一样的name也可以,完全可以把它们全放在一个数组里边,如。error表示错误,有这么几种情况,0:没有错误,上传成功; 1:文件超过了php配置指令中的upload_max_filesize规定的大小; 2:文件超过html表单中max_file_size规定的大小,3:文件只有部分上传; 4:没有文件上传。(size问题仍没有弄清楚╮(╯_╰)╭,就暂时先不做说明)
0){ switch($error){ case 1: exit('超过php配置的最大文件上传限制'); case 2: exit('超过html表单的最大文件上传限制'); case 3: exit('文件只有部分被上传'); case 4: exit('没有上传任何文件'); default: exit('未知类型错误'); } } // 2、判断是否为允许上传的类型 $extension = pathinfo($_files['uploadfile']['name'], pathinfo_extension); // 获取扩展名 if(!in_array($extension, $typewhitelist)){ if($extension == '') exit('不允许上传空类型文件'); else exit('不允许上传'.$extension.'类型文件'); } // 3、判断是否为允许大小 if($_files['uploadfile']['size'] > $max_size){ exit('超过了允许上传到的'.$max_size.'字节'); } // 4、已到指定位置 $filename = date('ymd').rand(1000, 9999); // 生成一个新文件名,防止覆盖 if(is_uploaded_file($_files['uploadfile']['tmp_name'])){ // 判断是否通过http post上传 if(!move_uploaded_file($_files['uploadfile']['tmp_name'], $upload_path.$filename.'.'.$extension)){ exit('无法移动到指定位置'); } else{ echo '文件上传成功
'; echo '文件名: '.$upload_path.$filename.'.'.$extension.'
'; } } else{ exit('文件未通过合法途径上传'); }
上传完成..............
文件下载--->单的文件下载只需要用一个html链接就够了,使用标签,href属性指定资源位置,一点就可。但这种方式只能处理浏览器默认无法识别的mime类型,(mime具体附wiki百科http://zh.wikipedia.org/wiki/%e5%a4%9a%e7%94%a8%e9%80%94%e4%ba%92%e8%81%af%e7%b6%b2%e9%83%b5%e4%bb%b6%e6%93%b4%e5%b1%95)
donwload file header.txt
php.zip
pic.ico
对于这些浏览器不认识的类型文件,点链接,它直接弹框让你下载,有的浏览器甚至直接就下了,那么对于文本txt、jpg等浏览器默认识别的类型的文件,一点击则会直接展现在页面上,比如上面header.txt、pic.ico。如何不展示在页面上而去下载它们呢,使用header函数。
header函数会通过发送头信息告知,请把该文件当成一个附件,这样点击的时候,就也会下载了。(还不是非常理解,完全理解了再补充╮(╯_╰)╭)
哦了~ 第一篇博文→_→
再次声明转载地址http://www.cnblogs.com/lazycat-cz/p/4113037.html
http://www.bkjia.com/phpjc/971767.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/971767.htmltecharticlephp---文件上传与下载, 转自http://www.cnblogs.com/lazycat-cz/p/4113037.html 安全性能---水平不够 ╮(╯_╰)╭ 文件上传---就是将本地的文件上传到服务...