PHP怎样完成文件上传
1、表单部份
许可用户上传文件,在HTML表单的声明中要加上一个上传的属性:
enctype = 'multipart/form-data'
表单的method必需是POST
表单选项MAX_FILE_SIZE隐蔽域用于限定上传文件大小,它必需放在文件表单元素前面,单元为字节。
代码以下:
<form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'> <input type='hidden' name='MAX_FILE_SIZE' value='2621114' /> <input name='upload_file' type='file' /> </form>
相干引荐:《PHP入门教程》
2、处置惩罚上传文件
上传时,PHP收到关于该文件的信息数组,这些信息能够在$_FILES这个超等全局数组中找到。
如:假如表单中的文件输入框名字为upload_file,那末关于该文件的一切信息都包括在数组$_FILES['upload_file']内里。
如:客户上传了一个“aaa.jpg”的图片数组值以下:
name "p5pp.jpg" 上传时文件的名字
type “image/jpeg" 文件范例
tmp_name "/tmp/phpjksdf" 服务器端的暂时文件名
error 上传毛病的返回值
size 2045 文件现实大小
上面数组内里的error会返回差别的常量值,以下:
UPLOAD_ERR_OK 没有毛病发作,文件上传胜利
UPLOAD_ERR_INI_SIZE 文件大小超过了PHP.INI中upload_max_filesize选项限定的值
UPLOAD_ERR_FORM_SIZE 上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项值。可在顺序中搜检表单$FILES ['up_file']['size']来处置惩罚
UPLOAD_ERR_PARTIAL 文件只要部份被上传
UPLOAD_ERR_NO_FILE 用户没有供应任何文件上传
上传后处置惩罚的细致例子:
代码以下:
if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){ echo "error"; }
函数:
move_uploaded_file 挪动上传的暂时文件到指定的目次下
例子:
move_uploaded_file('暂时文件名','指定文件途径')
is_uploaded_file 推断是不是是经由过程http Post上传的文件
例子:
代码以下:
if(!is_uploaded_file($_FILES['f']['tmp_name'])){ echo '不法'; }
3、相干参数
PHP上传设想到的php.ini中的参数:
file_uploads 是不是许可上传文件,默许ON。
upload_tmp_dir 上传文件防备的暂时目次,未指定则运用体系默许位置。
upload_max_filesize 许可上传文件的大小的最大值,默许为2M。
post_max_size 掌握采纳POST要领举行一次表单提交中PHP所能接收的最大数据量,假如愿望用PHP文件上传,则此值要改成比upload_max_filesize要大。
max_input_time 以秒为单元对经由过程POST/GET/PUT体式格局接收数据时候举行限定。
memory_limit 为了防止正在运转的剧本大批运用体系内存,PHP许可定义内存运用限额。经由过程设置此参数来制订单个剧本顺序能够运用的最大内存容量,应适当大于post_max_size值。
max_execution_time 用来设置在强迫停止剧本前PHP守候剧本实行终了的时候,单元秒。次选项可限定死循环剧本,但当存在一个长时候的正当运动时(如:上传大文件),这项功用也会致使操纵失利。如许情况下必需斟酌将此变量增添。
4、斟酌多文件上传
能够应用$_FILES数组就能够轻松完成多文件上传。$_FILES数组能够猎取客户端表单内里一切的file域内容,从而取得一切在统一表单上传的文件。
5、打破上传的内存限定
要领一:
修正php.ini中memory_limit值,改成更大,如 64M
要领二:
运用Apache Rewrite要领,动态修正memory_limit的值。起首竖立一个.htaccess文件,保留在上传文件顺序的 当前目次即可。
代码以下:
php_value memory_limit 100M php_value post_max_size 30M php_value upload_max_filesize 30M php_value max_execution_time 300 php_value max_input_tim 300 php_value display_errors On
以上就是php怎样完成上传文件功用的细致内容,更多请关注ki4网别的相干文章!