Heim > Backend-Entwicklung > PHP-Problem > Was ist der Prozess zum Hochladen einer PHP-Datei?

Was ist der Prozess zum Hochladen einer PHP-Datei?

coldplay.xixi
Freigeben: 2023-03-08 09:50:01
Original
3171 Leute haben es durchsucht

PHP-Datei-Upload-Prozess: Konfigurieren Sie zuerst die PHP-Datei und legen Sie das Front-End-Formular fest. Speichern Sie dann standardmäßig die temporäre Datei. Anschließend können Sie die Fehlerattribute im Dateiarray beurteilen und verarbeiten Auf dem Front-End verarbeitet werden. Typ, Größenbeschränkungen.

Was ist der Prozess zum Hochladen einer PHP-Datei?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 5.6, DELL G3-Computer. Diese Methode ist für alle Computermarken geeignet.

php-Datei-Upload-Prozess:

1. Der Datei-Upload-Bereich in der PHP-Konfigurationsdatei

php.ini definiert die relevante Datei-Upload-Konfiguration,

  • file_uploads = Ein, um den Datei-Upload zu öffnen

  • upload_tmp_dir = Temporäres Verzeichnis

  • upload_max_filesize = 2M Maximale Upload-Größe

  • max_file_uploads = 20 Maximale Anzahl gleichzeitig hochgeladener Dateien

2. Front-End-Formular

<form action="test.php" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile">
  <input type="submit" value="上传">
</form>
Nach dem Login kopieren

Bei Verwendung eines Formulars mit Datei-Upload-Steuerung, Das Formular muss enctype auf „multipart/form-data“ eingestellt sein.

Sie können die Größe und Art der hochgeladenen Dateien auf der Clientseite begrenzen:

<input type="hidden" name="MAX_FILE_SIZE" value="8096">
<input type="file" name="myfile" accept="image/jpeg,image/png">
Nach dem Login kopieren

3. Hintergrundverarbeitung

Nach dem Hochladen erhalten Sie auf der Serverseite ein Dateiarray $_FILES wie folgt : $_FILES文件数组如下:

Was ist der Prozess zum Hochladen einer PHP-Datei?

上传到服务器的临时文件默认保存在php.ini中upload_tmp_dir

Was ist der Prozess zum Hochladen einer PHP-Datei?

Temporär auf den Server hochgeladen. Die Datei wird standardmäßig in dem durch upload_tmp_dir in php.ini festgelegten Verzeichnis gespeichert. Wir müssen die Datei an den angegebenen Speicherort verschieben:

<?php
  header(&#39;Content-type:text/html;charset=utf-8&#39;);
  $myfile=$_FILES[&#39;myfile&#39;];
  //获取文件数组[&#39;myfile&#39;]的属性tmp_name与name
  $tmp=$myfile[&#39;tmp_name&#39;];
  $picname=$myfile[&#39;name&#39;];
  //windows采用GBK编码,php采用utf-8编码,需要改变文件名的编码格式
  $picname=iconv(&#39;utf-8&#39;,&#39;GBK&#39;,$picname);
  //将零时文件$tmp移动到指定目录userpic并命名为$picname
  copy($tmp,"userpic/".$picname);
Nach dem Login kopieren

4. Fehlerbehandlung und verarbeiten Sie das Fehlerattribut im Dateiarray :

$error=$myfile[&#39;myfile&#39;][&#39;error&#39;];
  if ($error==0){//为0,代表上传成功
    if (move_uploaded_file($tmp,"userpic/".$picname)) {
      echo "移动文件成功";
    }else{
      echo "移动文件失败";
    }
  }else{//不为0,匹配错误信息
    switch ($error){
      case 1:
        echo "超过文件最大上传限制";//php.ini中upload_max_filesize
        break;
      case 2:
        echo "超过表单文件大小限制";//HTML表单中MAX_FILE_SIZE选项
        break;
      case 3:
        echo "文件部分被上传";
        break;
      case 4:
        echo "未选择上传文件";
        break;
      case 7://文件写入失败
      case 8:
        echo "系统错误";
        break;
    }
  }
Nach dem Login kopieren

5. Upload-Einschränkungen

Am Frontend können Sie den Typ und die Größe der hochgeladenen Dateien begrenzen:

<!--表单隐藏域对上传大小进行限制-->
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
<!--accept 对文件类型限制-->
<input type="file" name="myfile" accept="image/jpeg,image/png">
Nach dem Login kopieren

Beachten Sie, dass das Limit in Bytes angegeben ist

Es gibt auch Antworteinschränkungen auf der Serverseite:
$size=$myfile[&#39;size&#39;];//获取文件大小
$MaxSize=2097152;//设置最大允许字节
$type=$myfile[&#39;type&#39;];//获取图片类型
$AllowTypr=array(&#39;image/jpeg&#39;,&#39;image/png&#39;,&#39;image/gif&#39;);//允许类型数组
if ($error==0){//为0,代表上传成功
  if ($size>$MaxSize){
    echo "<script>alert(&#39;文件大小超过限制&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }
  if (!in_array($type,$AllowTypr)){
    echo "<script>alert(&#39;请上传正确图片类型&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }
Nach dem Login kopieren

Verwandte Videoempfehlungen: PHP-Programmierung vom Anfänger bis zum Meister

🎜

Das obige ist der detaillierte Inhalt vonWas ist der Prozess zum Hochladen einer PHP-Datei?. 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