Heim > Backend-Entwicklung > PHP-Tutorial > Was Einsteiger über die Implementierung mehrerer Bild-Uploads in PHP wissen sollten

Was Einsteiger über die Implementierung mehrerer Bild-Uploads in PHP wissen sollten

烟雨青岚
Freigeben: 2023-04-08 22:06:02
nach vorne
2870 Leute haben es durchsucht

Was Einsteiger über die Implementierung mehrerer Bild-Uploads in PHP wissen sollten

Was Einsteiger über die Implementierung mehrerer Bild-Uploads in PHP wissen sollten

Ich bin heute bei der Arbeit auf eine Anforderung gestoßen : a Das Formular implementiert mehrere Upload-Bilder, ähnlich dem Modus zum Hochladen von Fotos im QQ-Bereich. Das heißt: Sie können mehrere Bilder gleichzeitig hochladen, es gibt jedoch nur ein Titelbild.

Als Erstes und Wichtigstes müssen Sie beim Lesen und Schreiben von Dateien auf dem Server die Berechtigungen überprüfen. Wenn Sie keine Berechtigungen haben, ist das alles Blödsinn.

Zuerst die Startseite: index.html

<html>
<head><title>多个文件上传表单</title></head>
<body>
<style>
    form{
        margin: 20px;
        padding: 10px;
    }
    #picInput>input{
        display: block;
        margin: 10px;
    }
</style>
<form action="pic.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <div id="picInput">
        上传图片:<input type="file" name=&#39;myfile[]&#39;>
    </div>
    <input id="addBtn" type="button" οnclick="addPic1()" value="继续添加图片"><br/><br/>
    <input type="submit" value="上传文件">
</form>
<script>
    function addPic1(){
        var addBtn =  document.getElementById(&#39;addBtn&#39;);
        var input = document.createElement("input");
        input.type = &#39;file&#39;;
        input.name = &#39;myfile[]&#39;;
        var picInut = document.getElementById(&#39;picInput&#39;);
        picInut.appendChild(input);
        if(picInut.children.length == 3){
            addBtn.disabled = &#39;disabled&#39;;
        }
    }
</script>
</body>
</html>
Nach dem Login kopieren

Wissenspunkte:

1. Dynamisch über JS. Eingabeknoten hinzufügen und Attribute festlegen. Wenn mehr als 3 Bilder hochgeladen werden, besteht keine Möglichkeit mehr, Bilder hochzuladen.

2. Das Wichtigste hier ist der Namenswert des Eingabefelds. Durch das dynamische Hinzufügen von Array-Elementen werden alle hochgeladenen Bilder dynamisch zum Array hinzugefügt.

Back-End-Verarbeitungsfunktion

Connection.php

1. Sowohl das Lesen als auch das Speichern erfordern die Verbindung zur Datenbank, also Sie kann es versiegeln und gute Gewohnheiten entwickeln

<?php
//创建对象并打开连接,最后一个参数是选择的数据库名称
$mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;,&#39;test&#39;);
//检查连接是否成功
if (mysqli_connect_errno()){
    //注意mysqli_connect_error()新特性
    die(&#39;Unable to connect!&#39;). mysqli_connect_error();
}
Nach dem Login kopieren

pic.php-Verarbeitungsfunktion

<?php
require_once &#39;connection.php&#39;;
$file = $_FILES[&#39;myfile&#39;];  //得到传输的数据,以数组的形式
$name = $file[&#39;name&#39;];      //得到文件名称,以数组的形式
$upload_path = "zhouqi666.cn/test/images/"; //上传文件的存放路径
//当前位置
foreach ($name as $k=>$names){
    $type = strtolower(substr($names,strrpos($names,&#39;.&#39;)+1));//得到文件类型,并且都转化成小写
    $allow_type = array(&#39;jpg&#39;,&#39;jpeg&#39;,&#39;gif&#39;,&#39;png&#39;); //定义允许上传的类型
    //把非法格式的图片去除
    if (!in_array($type,$allow_type)){
        unset($name[$k]);
    }
}
$str = &#39;&#39;;
foreach ($name as $k=>$item){
    $type = strtolower(substr($item,strrpos($item,&#39;.&#39;)+1));//得到文件类型,并且都转化成小写
    if (move_uploaded_file($file[&#39;tmp_name&#39;][$k],$upload_path.time().$name[$k])){
        //$str .= &#39;,&#39;.$upload_path.time().$name[$k];
        echo &#39;success&#39;;
    }else{
        echo &#39;failed&#39;;
    }
}
//向指定id插入图片地址(虽然是插入,但是是更新字段,不要迷糊了)
$uid = 1;
$str = substr($str,1);
$sql = "UPDATE upload set pic = &#39;".$str."&#39; WHERE id = ".$uid;
$result = $mysqli->query($sql);
Nach dem Login kopieren

Ich habe viele Urteile, die ich hier nicht geschrieben habe, hauptsächlich um einige umzusetzen Beispielsweise muss der Ordner zuerst erstellt werden. Sie können ihn auch selbst beurteilen, einen Ordner erstellen, wenn er nicht vorhanden ist, und andere Urteile fällen.

Das Wichtigste ist, dass Sie es Schritt für Schritt debuggen müssen, wenn Sie damit nicht vertraut sind, um die Ergebnisse zu sehen.

Bild-Reality-Funktion

<?php
require_once &#39;connection.php&#39;;
$uid = 1;
$sql = "SELECT pic FROM upload WHERE id =".$uid;
$result = $mysqli->query($sql);
//取出第一个图片的地址
$picpath = &#39;&#39;;
while ($row = $result->fetch_array()){
    $picpath = $row[0];
}
$picpath = explode(&#39;,&#39;,$picpath)[0];
echo "<img src=&#39;".$picpath."&#39;>";
?>
Nach dem Login kopieren

Vielen Dank fürs Lesen, ich hoffe, Sie werden viel davon profitieren.

Dieser Artikel ist reproduziert von: https://blog.csdn.net/zmzwll1314/article/details/72673138

Empfohlenes Tutorial: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWas Einsteiger über die Implementierung mehrerer Bild-Uploads in PHP wissen sollten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:csdn.net
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