php文件上传经典代码

 更新时间:2016年11月25日 16:00  点击:1490

php文件上传经典代码

function FileUpload( $resourceType, $currentFolder, $sCommand )
{
 if (!isset($_FILES)) {
  global $_FILES;
 }
 $sErrorNumber = '0' ;
 $sFileName = '' ;

 if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
 {
  global $Config ;

  $oFile = $_FILES['NewFile'] ;

  // Map the virtual path to the local server path.
  $sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand ) ;

  // Get the uploaded file name.
  $sFileName = $oFile['name'] ;
  $sFileName = SanitizeFileName( $sFileName ) ;

  $sOriginalFileName = $sFileName ;

  // Get the extension.
  $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
  $sExtension = strtolower( $sExtension ) ;

  if ( isset( $Config['SecureImageUploads'] ) )
  {
   if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false )
   {
    $sErrorNumber = '202' ;
   }
  }

  if ( isset( $Config['HtmlExtensions'] ) )
  {
   if ( !IsHtmlExtension( $sExtension, $Config['HtmlExtensions'] ) &&
    ( $detectHtml = DetectHtml( $oFile['tmp_name'] ) ) === true )
   {
    $sErrorNumber = '202' ;
   }
  }

  // Check if it is an allowed extension.
  if ( !$sErrorNumber && IsAllowedExt( $sExtension, $resourceType ) )
  {
   $iCounter = 0 ;

   while ( true )
   {
    $sFilePath = $sServerDir . $sFileName ;

    if ( is_file( $sFilePath ) )
    {
     $iCounter++ ;
     $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
     $sErrorNumber = '201' ;
    }
    else
    {
     move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;

     if ( is_file( $sFilePath ) )
     {
      if ( isset( $Config['ChmodOnUpload'] ) && !$Config['ChmodOnUpload'] )
      {
       break ;
      }

      $permissions = 0777;

      if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] )
      {
       $permissions = $Config['ChmodOnUpload'] ;
      }

      $oldumask = umask(0) ;
      chmod( $sFilePath, $permissions ) ;
      umask( $oldumask ) ;
     }

     break ;
    }
   }

   if ( file_exists( $sFilePath ) )
   {
    //previous checks failed, try once again
    if ( isset( $isImageValid ) && $isImageValid === -1 && IsImageValid( $sFilePath, $sExtension ) === false )
    {
     @unlink( $sFilePath ) ;
     $sErrorNumber = '202' ;
    }
    else if ( isset( $detectHtml ) && $detectHtml === -1 && DetectHtml( $sFilePath ) === true )
    {
     @unlink( $sFilePath ) ;
     $sErrorNumber = '202' ;
    }
   }
  }
  else
   $sErrorNumber = '202' ;
 }
 else
  $sErrorNumber = '202' ;


 $sFileUrl = CombinePaths( GetResourceTypePath( $resourceType, $sCommand ) , $currentFolder ) ;
 $sFileUrl = CombinePaths( $sFileUrl, $sFileName ) ;

 SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ;

 exit ;

is_array -- 检测变量是否是数组
 描述
 bool is_array ( mixed var)
 
 
 如果 var 是 array,则返回 TRUE,否则返回 FALSE。

 is_array($array)
 判断一个值是否为数组
 */
 $array = array('','');
 if( is_array( $array ) )
 {
  echo 'is array';
 }
 
 // 输出结果 is array
 
 $str ='';
 if( is_array( $str ) )
 {
  echo 'is array';
 }
 else
 {
  echo 'is string';
 }
 
 //输出结果为is string

php创建文件夹函数

function CreateFolder( $resourceType, $currentFolder )
{
 if (!isset($_GET)) {
  global $_GET;
 }
 $sErrorNumber = '0' ;
 $sErrorMsg  = '' ;

 if ( isset( $_GET['NewFolderName'] ) )
 {
  $sNewFolderName = $_GET['NewFolderName'] ;
  $sNewFolderName = SanitizeFolderName( $sNewFolderName ) ;

  if ( strpos( $sNewFolderName, '..' ) !== FALSE )
   $sErrorNumber = '102' ;  // Invalid folder name.
  else
  {
   // Map the virtual path to the local server path of the current folder.
   $sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'CreateFolder' ) ;

   if ( is_writable( $sServerDir ) )
   {
    $sServerDir .= $sNewFolderName ;

    $sErrorMsg = CreateServerFolder( $sServerDir ) ;

    switch ( $sErrorMsg )
    {
     case '' :
      $sErrorNumber = '0' ;
      break ;
     case 'Invalid argument' :
     case 'No such file or directory' :
      $sErrorNumber = '102' ;  // Path too long.
      break ;
     default :
      $sErrorNumber = '110' ;
      break ;
    }
   }
   else
    $sErrorNumber = '103' ;
  }
 }
 else
  $sErrorNumber = '102' ;

 // Create the "Error" node.
 echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
}

php 读取文件夹文件函数

function GetFoldersAndFiles( $resourceType, $currentFolder )
{
 // Map the virtual path to the local server path.
 $sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' ) ;

 // Arrays that will hold the folders and files names.
 $aFolders = array() ;
 $aFiles  = array() ;

 $oCurrentFolder = opendir( $sServerDir ) ;

 while ( $sFile = readdir( $oCurrentFolder ) )
 {
  if ( $sFile != '.' && $sFile != '..' )
  {
   if ( is_dir( $sServerDir . $sFile ) )
    $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
   else
   {
    $iFileSize = @filesize( $sServerDir . $sFile ) ;
    if ( !$iFileSize ) {
     $iFileSize = 0 ;
    }
    if ( $iFileSize > 0 )
    {
     $iFileSize = round( $iFileSize / 1024 ) ;
     if ( $iFileSize < 1 ) $iFileSize = 1 ;
    }

    $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
   }
  }
 }

 // Send the folders
 natcasesort( $aFolders ) ;
 echo '<Folders>' ;

 foreach ( $aFolders as $sFolder )
  echo $sFolder ;

 echo '</Folders>' ;

 // Send the files
 natcasesort( $aFiles ) ;
 echo '<Files>' ;

 foreach ( $aFiles as $sFiles )
  echo $sFiles ;

 echo '</Files>' ;
}

php 读取目录文件夹列表程序

function GetFolders( $resourceType, $currentFolder )
{
 // Map the virtual path to the local server path.
 $sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFolders' ) ;

 // Array that will hold the folders names.
 $aFolders = array() ;

 $oCurrentFolder = opendir( $sServerDir ) ;

 while ( $sFile = readdir( $oCurrentFolder ) )
 {
  if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
   $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
 }

 closedir( $oCurrentFolder ) ;

 // Open the "Folders" node.
 echo "<Folders>" ;

 natcasesort( $aFolders ) ;
 foreach ( $aFolders as $sFolder )
  echo $sFolder ;

 // Close the "Folders" node.
 echo "</Folders>" ;
}

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24