多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP实现文件上传的思路及实例

时间:2017-09-12 18:26:32 [来源]:郑州PHP培训学校

  PHP实现文件上传的思路及实例
  使用PHP实现文字上传首选要了解PHP函数库当中的FILE函数库,字符串类型函数库,目录函数库及$_FILES[]的使用是我们必须要用到的。
  文件上传我们需要用到HTML里面表单的type=file类型,及其enctype属性。这是我们大家必须要用的。当然了PHP函数库当中的FILE函数库,字符串类型函数库,目录函数库及$_FILES[]的使用是我们必须要用到的。
  也许每一个站点都可能会对上传文件有许多的限制,这些限制会包括 文件类型,文件大小,扩展名,以及上传目录的存在与否,上传文件的存在与否,目录的可写性,可读性,上传文件的改名及怎样把文件从缓存当中复制到你所需要的目录当中。
  当然出错的预处理也是我们不容忽视的!如果再深一步的讨论我们还可以对文件的操作起用事件日志的记录。
  下面我们通过一段程序来实现这些功能:
  首先是我们预设的变量值,它包括文件大小,文件扩展名类型,MIMI类型,及是否删除的开关变量
  $MAX_SIZE = 2000000;
  $FILE_MIMES = array('image/jpeg','image/jpg','image/gif'
  ,'image/png','application/msword');
  $FILE_EXTS = array('.zip','.jpg','.png','.gif');
  $DELETABLE = true;
  下一部就是设置浏览器访问变量及目录访问变量:
  $site_name = $_SERVER['HTTP_HOST'];
  $url_dir = http://.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  $url_this = http://.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  $upload_dir = files/;
  $upload_url = $url_dir./files/;
  $message =;
  建立上传目录并相应改变权限:
  if (!is_dir(files)) {
  if (!mkdir($upload_dir))
  die (upload_files directory doesn't exist and creation failed);
  if (!chmod($upload_dir,0755))
  die (change permission to 755 failed.);
  }
  用户请求的处理:
  if ($_REQUEST[del] && $DELETABLE) {
  $resource = fopen(log.txt,a);
  fwrite($resource,date(Ymd h:i:s).DELETE - $_SERVER[REMOTE_ADDR].$_REQUEST[del]\\n);
  fclose($resource);
  if (strpos($_REQUEST[del],/.)﹥0); //possible hacking
  else if (strpos($_REQUEST[del],files/) === false); //possible hacking
  else if (substr($_REQUEST[del],0,6)==files/) {
  unlink($_REQUEST[del]);
  print ﹤script﹥window.location.href='$url_this?message=deleted successfully'﹤/script﹥;
  }
  }
  else if ($_FILES['userfile']) {
  $resource = fopen(log.txt,a);
  fwrite($resource,date(Ymd h:i:s).UPLOAD - $_SERVER[REMOTE_ADDR]
  .$_FILES['userfile']['name'].
  .$_FILES['userfile']['type'].\\n);
  fclose($resource);
  $file_type = $_FILES['userfile']['type'];
  $file_name = $_FILES['userfile']['name'];
  $file_ext = strtolower(substr($file_name,strrpos($file_name,.)));

上一篇:PHP开发搜索引擎技术全解析

下一篇:实用PHP组件及教程10则有哪些