文件上传
文件上传通过html文件中的表单进行上传;
<form action="1.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="pic" /></p>
<p><input type="submit" value=" 提交 " /></p>
</form>
注意写上传表单时,form中必须写:enctype="multipart/form-data";
表单提交到php页面后,可以通过超全局变量$_FILES,进行获取提交文件的信息;
查看这个超全局变量可以看出得到一个数组;
$_FILES['pic']['name']:原始文件名
$_FILES['pic']['type']:文件类型
$_FILES['pic']['tmp_name']:临时文件
$_FILES['pic']['error']:错误代码,0为无错误
$_FILES['pic']['size']:文件大小(字节)
我们需要获取的这个文件存在与临时文件中,在php文件结束后就会删除,使用$_FILES['pic']['tmp_name']来获取临时文件及其位置,使用move_uploaded_file('文件的位置','文件移动到的位置');来获取表单提交到php文件中的文件,并将其存放到指定位置。
生成随机文件名并按日期存储
//生成随机文件名
$fname = rand(10000,99999);
//获取文件后缀
$ext = strrchr($_FILES['pic']['name'],'.');
//连接创建目录
$path = './'.date('Y/m/d');
if(!is_dir($path)){
mkdir($path,0777,true);
}
//mkdir的参数2为最高级权限,参数3为true表示进行联级创建,默认为false
//此时新的目录为$path .'/'. $fname . $ext
str_shuffle();:将字符串进行打乱
substr(str,0,num);:将字符串从0开始截取num个长度