PHP 文件系统详解(推荐)

发布时间:2020-09-02编辑:脚本学堂
本文详细介绍了php文件系统的相关知识,包括打开文件,读取目录,上传下载等,有需要的朋友参考下。
3,文件上传。
  php中应用move_uploaded_file()函数实现文件上传。但在执行之前,为了防止潜在的攻击对原本不能通过脚本交互的文件进行非法管理,可以先应用is_uploaded_file()函数判断指定的文件是否通过HTTP POST上传的,如果是则返回true。通过该函数,可以确保恶意的用户无法欺骗脚本去访问不能访问的文件。

   bool is_uploaded_file(string name);//用于判断指定的文件是否通过HTTP POST上传的。filename必须类似于$_FILES[‘filename'][‘temp_name']的变量,不可以使用从客户端上传的文件名$_FILES[‘filename'][‘name']。

   move_upload_file(string filename,string destination);//该函数用于将文件上传到服务器中指定的位置。如果成功,则返回true,否则返回false。filename指定上传文件的临时文件名,即$_FILES['tmp_name'],参数destination指定文件上传后保存的新路径和名称。如果参数不是合法的上传文件,不会出现任何操作,该函数将返回false。如果是合法的上传操作,但是由于某些原因无法移动,则不会出现任何操作,返回false的同时将会发出一条警告。

代码:
 

复制代码 代码示例:
<?php
if( !empty($_FILES[ 'up_picture' ][ 'name' ])){
if( $_FILES['up_picture']['error'] > 0){
echo "上传错误!";
switch($_FILES['up_picture']['error']){
case 1:
echo "上传文件超出配置文件规定值";
break;
case 2:
echo "上传文件超出表单规定值";
break;
case 3:
echo "上传文件不全";
break;
case 4:
echo "没有上传文件";
break;
}
}else{
if( ! is_dir('./upfile/') ) mkdir('./upfile/');
$path='./upfile/'.time().$_FILES['up_picture' ][ 'name' ];
if( is_uploaded_filed( $_FILES['up_picture' ][ 'tmp_name' ] )){
if(!move_uploaded_file( $_FILES['up_picture' ][ 'tmp_name' ] ,$path )){
echo "上传失败!";
}else{
echo "文件".time().$_FILES['up_picture' ][ 'name' ] ."上传成功,大小为:".$_FILES['up_picture' ][ 'size' ] ;
}
}else{
echo "上传文件".$_FILES['up_picture' ][ 'name' ]."不合法";
}
}
}
?>

4,文件下载
介绍通过http方式下载文件,主要用到header()函数。header()函数属于HTTP函数,其作用是以HTTP将HTML文档的表头送到浏览器,并告诉浏览器具体怎麽处理这个页面。
void header(string string[,bool replace[,int http_respone_code]]);//参数string 指定发送的标头。
参数replace控制如果一次发送多个标头,对于相似的标头是替换还是添加。
如果是false,则强制发送多个同类型的标头,默认为true。参数http_respone_code强制将HTTP响应代码设置为指定值:
下载步骤:
a):通过"Content-Type" 指定文件的MIME类型。
b):通过"Content-Disposition" 对文件进行描述,值"attachment;filename="test.jpg"" 说明是一个福建,同时指定下载文件的名称。
c):通过"Content-Length" 设置下载文件的大小。
d):通过readfile()函数读取文件内容。
例如:
 

复制代码 代码示例:
header('Content-Type:image/jpg');
header(' Content-Disposition:attachment;filename="test.jpg" ');
header('Content-Length:'.filesize('test.jpg') );
readfile('test.jpg');

5,访问远程文件

  步骤1:配置 php.ini 文件选项 allow_url_fopen设置为on。参数默认是开啓的,允许打开http和ftp指定的远程文件。如果 allow_url_fopen设置为off,则不允许打开远程文件。
  步骤2:使用fopen()函数读取文件内容。根据内容创建你想要的资源,保存到本地。
        
备注:更多php.ini配置文件中的文件操作 和 目录操作的扩展方法请参考官方php指南。