PHP文件上传和下载程序员培养之路第

白癜风专家李从悠 http://nb.ifeng.com/a/20190701/7506223_0.shtml
第一节上传设置客户端设置form:method=post、enctype=multipart/form-datainput:type=fileformaction=upload.phpmethod=postenctype=multipart/form-datainputtype=filename=fname!--MAX_FILE_SIZE有兼容问题--inputtype=hiddenname=MAX_FILE_SIZEvalue=/buttontype=submit提交/button/form服务端设置在php.ini中进行设置:默认uploadmaxfilesize=2M,如果你想上传超过8M的文件,比如:20M,你在设定uploadmaxfilesize=20M的同时,还要修改postmaxsize选项(默认为8M)。否则post数据超出限制,$_FILES将会为空(报错)。$_FILES数组$_FILES超全局数组中,包含着从客户端提交文件的全部信息:array(size=1)fname=//上传文件表单项的namearray(size=5)name=stringhome.html(length=21)//上传文件的名称type=stringtext/html(length=9)//文件类型(常见文件都可以上传)tmp_name=stringC:\wamp\tmp\php57A2.tmp(length=23)//上传文件的临时文件名error=int0//上传文件遇到的错误号size=int//上传文件的大小上传步骤var_dump($_FILES);$file=$_FILES[fname];获取$_FILES文件临时文件$tmp_file=$file[tmp_name];获取后缀名$ext=pathinfo($file[name],PATHINFO_EXTENSION);//后缀名创建新文件名$new_file=file.rand(1,)...$ext;保存路径$path=./files;格式化路径$path=rtrim($path,/)./;拼接上传目录$new_file=$path.$new_file;临时文件转换成正式文件move_uploaded_file($tmp_file,$new_file);PHP第二节下载设置浏览器对于可识别的文件格式(html、txt、png、jpg等),默认是直接打开的,对于无法识别的文件,才作为附件来下载。为了可以让可识别的文件也直接可以下载,需要进行如下设置:atitle=点击下载href=down.php?name=01.jpgtype=image/jpegimgsrc=01.jpg/a1.读取文件$fliename=$_GET[name];$filetype=$_GET[type];2.文件的描述信息Content-Disposition(内容配置)指定为attachment(附件)(必须)header(Content-Disposition:attachment;filename={$filename});3.指定被下载文件的类型(非必须)header(Content-Type:{$filetype});4.指定被下载文件大小(非必须)header(Content-Length:.filesize($filename));5.将内容读入内存缓冲区readfile($filename);注意:在readfile($filename)之前,不能有任何输出语句(错误信息、var_dump调试语句,echo输出等),否则下载的文件会出错。PHP-文件处理系统「程序员培养之路第三十七天」PHP-错误日志处理「程序员培养之路第三十六天」PHP-日期时间操作函数「程序员培养之路第三十五天」


转载请注明:http://www.xxcyfilter.com/zytd/zytd/16719.html