Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Einführungs-Tutorial – Datei-Beispielfreigabe hochladen

PHP-Einführungs-Tutorial – Datei-Beispielfreigabe hochladen

墨辰丷
Freigeben: 2023-03-29 06:38:02
Original
1356 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zum Hochladen von Dateien im PHP-Einführungs-Tutorial vor. Er analysiert die Schritte und zugehörigen Implementierungstechniken zum Hochladen von Dateien in PHP im Detail mit Beispielen

Demo1. php

<form enctype="multipart/form-data" action="Demo2.php" method="post">
  <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  上传文件: <input type="file" name="userfile" />
  <input type="submit" value="上传" />
</form>
Nach dem Login kopieren

Demo2.php

<?php
  //接受上传文件
  //$_FILES;
  //存在,但是空值
  //[userfile][name] 表示上传的文件名
  //[userfile][type] 表示文件类型:例如,jpg 的文件类型为:image/jpeg
  //[userfile][tmp_name]表示上传的文件临时存放的位置 C:\WINDOWS\temp\php28.tmp
  //[userfile][error]表示错误类型,表示没有任何错误。
  //[userfile][size]表示上传文件的大小
  print_r($_FILES);
  echo &#39;<br/>&#39;;
  //is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的
  //通过 HTTP POST 上传后,文件会存放在临时文件夹下
  $fileMimes = array(&#39;image/jpeg&#39;,&#39;image/pjpeg&#39;,&#39;image/gif&#39;,&#39;image/png&#39;,&#39;image/x-png&#39;);
  //判断类型是否是数组里的一种
  if(is_array($fileMimes)){
    if(!in_array($_FILES[&#39;userfile&#39;][&#39;type&#39;],$fileMimes)){
      echo "<script>alert(&#39;本站只允许 jpg,png,gif 图片&#39;);history.back();</script>";
      exit;
    }
  }
  //创建一个常量
  define(&#39;URL&#39;,dirname(__FILE__).&#39;\uploads&#39;);
  echo URL;
  //判断目录是否存在
  if(!is_dir(URL)){
    mkdir(URL,0777); //最大权限0777,意思是如果没有这个目录,那么就创建
  }
  define(&#39;MAX_SIZE&#39;,2000000);
  if($_FILES[&#39;userfile&#39;][&#39;size&#39;] > MAX_SIZE){
    echo "<script>alert(&#39;上传不得超过 2 M&#39;);history.back();</script>";
    exit;
  }
  //还有两个问题要验证
  //第二个问题,只允许 JPG 文件
// if($_FILES[&#39;userfile&#39;][&#39;type&#39;] != &#39;image/jpeg&#39; && $_FILES[&#39;userfile&#39;][&#39;type&#39;] != &#39;image/pjpeg&#39;){
//   echo "<script>alert(&#39;本站只允许 JPG 图片&#39;);history.back();</script>";
//   exit ;
// }
// switch ($_FILES[&#39;userfile&#39;][&#39;type&#39;]){
//   case &#39;image/jpeg&#39;://火狐
//     break;
//   case &#39;image/pjpeg&#39;:
//     break;
//   case &#39;image/gif&#39;:
//     break;
//   case &#39;image/png&#39;://火狐
//     break;
//   case &#39;image/x-png&#39;://IE
//     break;
//   default: echo "<script>alert(&#39;本站只允许 jpg,png,gif 图片&#39;);history.back();</script>";
//   exit ;
// }
  //第一个问题,如果上传错误,怎么办
  if($_FILES[&#39;userfile&#39;][&#39;error&#39;]>0){
    switch ($_FILES[&#39;userfile&#39;][&#39;error&#39;]){
      case 1:echo "<script>alert(&#39;上传文件超过约定值1&#39;);history.back();</script>";
      break;
      case 2:echo "<script>alert(&#39;上传文件超过约定值2&#39;);history.back();</script>";
      break;
      case 3:echo "<script>alert(&#39;部分被上传&#39;);history.back();</script>";
      break;
      case 4:echo "<script>alert(&#39;没有被上传&#39;);history.back();</script>";
      break;
    }
    exit;
  }
  if(is_uploaded_file($_FILES[&#39;userfile&#39;][&#39;tmp_name&#39;])){
    //就在这里移动了
    //move_uploaded_file -- 将上传的文件移动到新位置
    //第一个参数,写上临时文件的地址,
    //第二个参数,第二个参数要写上你要存在的地址
    //先去判断这个目录是否存在
    //如果想屏蔽掉警告,直接加上 @
    if(!move_uploaded_file($_FILES[&#39;userfile&#39;][&#39;tmp_name&#39;],URL.&#39;/&#39;.$_FILES[&#39;userfile&#39;][&#39;name&#39;])){
      //如果移动失败,就失败
      echo &#39;移动失败&#39;;
      exit;
    }
  }else{
    echo "<script>alert(&#39;临时文件夹找不到上传的文件&#39;);history.back();</script>";
    exit;
  }
  //全部通过就上传成功了
  //必须传一个值给Demo3.php
  //文件上传的地址
  echo "<script>alert(&#39;文件上传成功&#39;);location.href=&#39;Demo3.php?url=".$_FILES[&#39;userfile&#39;][&#39;name&#39;]."&#39;;</script>";
?>
Nach dem Login kopieren

Demo3.php

<?php
  $url = $_GET[&#39;url&#39;];
  echo "<img src=\"uploads/".$url."\"/>";
?>
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann für das Studium aller hilfreich sein.

Verwandte Empfehlungen:

phpSo lösen Sie verstümmelten DOM-Code

php Detaillierte Erläuterung der PDO-Ausnahmebehandlungsmethode

Eine kurze Einführung in die date.timezone-Einstellung in PHP.ini

Das obige ist der detaillierte Inhalt vonPHP-Einführungs-Tutorial – Datei-Beispielfreigabe hochladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage