php文件上传
在服务器上判断:
1)接收数据post 2)enctype="multipart/form-data"属性
3)move_uploaded_file :移动文件到指定位置
php.ini临时文件的配置 file_uploads = On upload_tmp_dir = "
临时文件的消失时间:临时文件在接受的.php文件结束后,就立即消失了
要是没有.php文件没有结束,则可以观察到临时文件的内容;
在客户端判断上传文件大小:js是不允许操作本地文件的
Ajax 无法实现在客户端判断上传文件的大小
1.php文件上传的过程:
做一个文件上传的表单:
<form action="up.php"method="post">
用户名:<input type="text" name="username"/><br/>
头像:<input type="file" name="pic"/><br/>
<input type="submit" value="提交"/>
</form>
1)提交后,文件自动发到服务器上,形成一个临时文件,
2)在服务器上,只需要把临时文件移动到自己想要的位置,就可以完成上传文件
php形成临时文件后,还会形成一个$_FILES超级全局数组
数组里面保存着文件的临时地址,临时名称,大小,等信息
注意:文件上传必须用post提交
在up.php中:
<?php
print_r($_FILES);
?>
此时打印在浏览器上的为空数组
解决方法:声明enctype选项
即:在form中声明:enctype="multipart/form-data"属性
通知对方服务器,发的是包含文件的二进制信息表单数据
则会出现:
{
name:上传文件名
type:文件类型
tem_name:临时文件名
error:错误代码
size:文件大小 以字节来表示 ;
}
3)如何移动上传的临时文件
用move_uploaded_file()函数<?php
print_r($_FILES);
if(move_uploaded_file($_FILES['pic']['tmp_name'],'./file/'.$_FILES['pic']['name'])){
echo "success";
}else{
echo "fail";
}