中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么實現php多圖片上傳

發布時間:2020-06-16 10:32:38 來源:億速云 閱讀:131 作者:Leah 欄目:編程語言

怎么實現php多圖片上傳?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

今天在工作中遇到了一個需求:一個表單實現多個上傳圖片,類似于QQ空間上傳照片的模式。即:可以一次性上傳多個圖片,但是封面圖片只有一個。

最先,最重要的事,在服務器上對文件進行讀寫操作的時候,一定要看權限,如果沒有權限,全是蝦扯蛋,為什么這樣說,因為全是淚。

首先,前端頁面: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='myfile[]'>
    </div>
    <input id="addBtn" type="button" οnclick="addPic1()" value="繼續添加圖片"><br/><br/>
    <input type="submit" value="上傳文件">
</form>
<script>
    function addPic1(){
        var addBtn =  document.getElementById('addBtn');
        var input = document.createElement("input");
        input.type = 'file';
        input.name = 'myfile[]';
        var picInut = document.getElementById('picInput');
        picInut.appendChild(input);
        if(picInut.children.length == 3){
            addBtn.disabled = 'disabled';
        }
    }
</script>
</body>
</html>

知識點:

1.通過JS動態添加input結點和設置屬性,當大于3個上傳圖片的時候就不再給予上傳圖片的機會了。

2.這里最主要的是input輸入框的name值,通過動態的添加數組元素,將所有上傳的圖片動態添加到數組當中。

后端處理功能

Connection.php

1.讀取和存儲都需要用到連接數據庫,所以可以把它封住一下,養成良好的習慣

<?php
//創建對象并打開連接,最后一個參數是選擇的數據庫名稱
$mysqli = new mysqli('localhost','root','','test');
//檢查連接是否成功
if (mysqli_connect_errno()){
    //注意mysqli_connect_error()新特性
    die('Unable to connect!'). mysqli_connect_error();
}

pic.php處理功能

<?php
require_once 'connection.php';
$file = $_FILES['myfile'];  //得到傳輸的數據,以數組的形式
$name = $file['name'];      //得到文件名稱,以數組的形式
$upload_path = "zhouqi666.cn/test/images/"; //上傳文件的存放路徑
//當前位置
foreach ($name as $k=>$names){
    $type = strtolower(substr($names,strrpos($names,'.')+1));//得到文件類型,并且都轉化成小寫
    $allow_type = array('jpg','jpeg','gif','png'); //定義允許上傳的類型
    //把非法格式的圖片去除
    if (!in_array($type,$allow_type)){
        unset($name[$k]);
    }
}
$str = '';
foreach ($name as $k=>$item){
    $type = strtolower(substr($item,strrpos($item,'.')+1));//得到文件類型,并且都轉化成小寫
    if (move_uploaded_file($file['tmp_name'][$k],$upload_path.time().$name[$k])){
        //$str .= ','.$upload_path.time().$name[$k];
        echo 'success';
    }else{
        echo 'failed';
    }
}
//向指定id插入圖片地址(雖然是插入,但是是更新字段,不要迷糊了)
$uid = 1;
$str = substr($str,1);
$sql = "UPDATE upload set pic = '".$str."' WHERE id = ".$uid;
$result = $mysqli->query($sql);

這里我有很多的判斷沒有寫,主要是實現一下功能,比如文件夾要先建立好,你也可以自己判斷,不存在就創建一個文件夾,還有一些其他判斷等等。

最關鍵的地方是,當你不熟悉的時候,要走一步調試一步,看得到的結果是什么。

圖片現實功能

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

看完這篇文章,你們學會實現php多圖片上傳的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

侯马市| 平顶山市| 安国市| 政和县| 赞皇县| 墨玉县| 雷山县| 新沂市| 平顺县| 青田县| 老河口市| 任丘市| 博兴县| 凭祥市| 鹤岗市| 独山县| 博乐市| 神农架林区| 湘潭县| 上饶市| 龙游县| 九台市| 柳河县| 翼城县| 丹江口市| 洪泽县| 宁晋县| 屯留县| 鹤庆县| 阜阳市| 富平县| 蚌埠市| 班戈县| 五常市| 洛扎县| 霸州市| 浦城县| 瓮安县| 临夏市| 女性| 土默特左旗|