【问题标题】:Pass multiple images data from JavaScript to PHP to Preview and Upload multiple images with delete option将多个图像数据从 JavaScript 传递到 PHP 以使用删除选项预览和上传多个图像
【发布时间】:2021-08-02 10:11:12
【问题描述】:

我希望能够将图像从 Javasctipt 传递到 PHP,然后将它们上传并存储在 MySQL 中。

<div class="media">
    <div class="aspect-ratio">
        <div class="previewcon">
            <div class="preview" id="preview1con">
                <img id="preview1" src="" alt="">
                <i id="remove1" class="fas fa-times"></i>
            </div>
            <div class="preview" id="preview4con">
                <img id="preview4" src="" alt="">
                <i id="remove4" class="fas fa-times"></i>
            </div>
        </div>
        <div class="previewcon" id="previewcon">
            <div class="preview" id="preview2con">
                <img id="preview2" src="" alt="">
                <i id="remove2" class="fas fa-times"></i>
            </div>
            <div class="preview" id="preview3con">
                <img id="preview3" src="" alt="">
                <i id="remove3" class="fas fa-times"></i>
            </div>
        </div>
    </div>
</div>

<div class="option">
    <div class="icons">
    <div class="icon-input">
        <i class="fas fa-photo-video i-hover-s current"></i>
        <input id="media-input" name="media-array[]" type="file" accept="image/jpeg,image/png,image/webp,image/gif,video/mp4,video/quicktime,video/webm" onchange="mediaSelect()" multiple>
    </div>
        <script>
            const mediaUploading = document.getElementById("media-uploading");
            var medias = [];
            function mediaSelect(){
                var media = document.getElementById("media-input").files;
                
                for(i = 0; i < media.length; i++){
                    if(medias.length >= 4){
                    }
                    else{
                        medias.push({
                            "name" : media[i].name,
                            "url" : URL.createObjectURL(media[i]),
                            "file" : media[i]
                        });
                    }
                }

                if(medias[0]){
                    mediaCon = document.querySelector(".media")
                    preview1.src = medias[0]["url"];
                    mediaCon.style.display = "block";
                    preview2con.style.display = "none";
                    preview3con.style.display = "none";
                    preview4con.style.display = "none";
                    previewcon.style.display = "none";
                    preview1con.style.display = "block";
                    preview1con.style.height = "100%";
                    if(medias[1]){
                        preview2.src = medias[1]["url"];
                        preview2con.style.display = "block";
                        previewcon.style.display = "block";
                        preview2con.style.height = "100%";
                    }
                    if(medias[2]){
                        preview3.src = medias[2]["url"];
                        preview3con.style.display = "block";
                        preview2con.style.height = "50%";
                    }
                    if(medias[3]){
                        preview4.src = medias[3]["url"];
                        preview4con.style.display = "block";
                        preview1con.style.height = "50%";
                    }
                } 
            }


            remove1.addEventListener("click", () =>{
                mediaCon = document.querySelector(".media")
                medias.splice(0, 1);
                preview1con.style.display = "none";
                if(!medias[0]){    
                    mediaCon.style.display = "none";
                }
                if(medias[0]){
                    mediaCon = document.querySelector(".media")
                    preview1.src = medias[0]["url"];
                    mediaCon.style.display = "block";
                    preview2con.style.display = "none";
                    preview3con.style.display = "none";
                    preview4con.style.display = "none";
                    previewcon.style.display = "none";
                    preview1con.style.display = "block";
                    preview1con.style.height = "100%";
                    if(medias[1]){
                        preview2.src = medias[1]["url"];
                        preview2con.style.display = "block";
                        previewcon.style.display = "block";
                        preview2con.style.height = "100%";
                    }
                    if(medias[2]){
                        preview3.src = medias[2]["url"];
                        preview3con.style.display = "block";
                        preview2con.style.height = "50%";
                    }
                    if(medias[3]){
                        preview4.src = medias[3]["url"];
                        preview4con.style.display = "block";
                        preview1con.style.height = "50%";
                    }
                }
            })

            remove2.addEventListener("click", () =>{
                mediaCon = document.querySelector(".media")
                medias.splice(1, 1);
                preview2con.style.display = "none";
                if(medias[0]){
                    mediaCon = document.querySelector(".media")
                    preview1.src = medias[0]["url"];
                    mediaCon.style.display = "block";
                    preview2con.style.display = "none";
                    preview3con.style.display = "none";
                    preview4con.style.display = "none";
                    previewcon.style.display = "none";
                    preview1con.style.display = "block";
                    preview1con.style.height = "100%";
                    if(medias[1]){
                        preview2.src = medias[1]["url"];
                        preview2con.style.display = "block";
                        previewcon.style.display = "block";
                        preview2con.style.height = "100%";
                    }
                    if(medias[2]){
                        preview3.src = medias[2]["url"];
                        preview3con.style.display = "block";
                        preview2con.style.height = "50%";
                    }
                    if(medias[3]){
                        preview4.src = medias[3]["url"];
                        preview4con.style.display = "block";
                        preview1con.style.height = "50%";
                    }
                }
            })

            remove3.addEventListener("click", () =>{
                mediaCon = document.querySelector(".media")
                medias.splice(2, 1);
                preview3con.style.display = "none";
                if(medias[0]){
                    mediaCon = document.querySelector(".media")
                    preview1.src = medias[0]["url"];
                    mediaCon.style.display = "block";
                    preview2con.style.display = "none";
                    preview3con.style.display = "none";
                    preview4con.style.display = "none";
                    previewcon.style.display = "none";
                    preview1con.style.display = "block";
                    preview1con.style.height = "100%";
                    if(medias[1]){
                        preview2.src = medias[1]["url"];
                        preview2con.style.display = "block";
                        previewcon.style.display = "block";
                        preview2con.style.height = "100%";
                    }
                    if(medias[2]){
                        preview3.src = medias[2]["url"];
                        preview3con.style.display = "block";
                        preview2con.style.height = "50%";
                    }
                    if(medias[3]){
                        preview4.src = medias[3]["url"];
                        preview4con.style.display = "block";
                        preview1con.style.height = "50%";
                    }
                }
            })

            remove4.addEventListener("click", () =>{
                mediaCon = document.querySelector(".media")
                medias.splice(3, 1);
                preview4con.style.display = "none";
                if(medias[0]){
                    mediaCon = document.querySelector(".media")
                    preview1.src = medias[0]["url"];
                    mediaCon.style.display = "block";
                    preview2con.style.display = "none";
                    preview3con.style.display = "none";
                    preview4con.style.display = "none";
                    previewcon.style.display = "none";
                    preview1con.style.display = "block";
                    preview1con.style.height = "100%";
                    if(medias[1]){
                        preview2.src = medias[1]["url"];
                        preview2con.style.display = "block";
                        previewcon.style.display = "block";
                        preview2con.style.height = "100%";
                    }
                    if(medias[2]){
                        preview3.src = medias[2]["url"];
                        preview3con.style.display = "block";
                        preview2con.style.height = "50%";
                    }
                    if(medias[3]){
                        preview4.src = medias[3]["url"];
                        preview4con.style.display = "block";
                        preview1con.style.height = "50%";
                    }
                }
            })
        </script>

我的代码目前可以选择多个图像然后进行预览。我还可以通过在“媒体”数组中删除它们来从预览中删除图像。

所以我有一个 javascript 数组“媒体”,我在其中存储图像的名称 URL 和所有文件数据。我还想上传 4 张图片或 1 个视频。

我不太擅长 JavaScript,但我更了解 PHP。一个星期以来,我一直在努力寻找解决这个问题的方法。所以我非常感谢您的帮助。

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    你可以通过带有提交按钮的 POST 表单,然后使用 php 上传文件: https://www.php.net/manual/en/features.file-upload.post-method.php

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 2015-01-01
      • 2019-09-04
      • 1970-01-01
      相关资源
      最近更新 更多