为了账号安全,请及时绑定邮箱和手机立即绑定

使用PHP和JQuery上传多个文件

使用PHP和JQuery上传多个文件

Cats萌萌 2019-11-21 09:43:27
我最近一直在尝试使用PHP,到目前为止一直很好,直到碰到一堵墙为止。这是我的一小段代码。它允许我上传单个文件,但是我想要的是能够上传多个文件。这是PHP和HTML文件:<html><head>  <meta charset="utf-8" />  <title>Ajax upload form</title><script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script type="text/javascript" src="https://www.google.com/jsapi"></script><script type="text/javascript">    function sendfile(){        var fd = new FormData();          for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) {            fd.append("myfile", document.getElementById('myfile').files[i]);                        }        $.ajax({          url: 'uploadfile.php',          data: fd,          processData: false,          contentType: false,          type: 'POST',                success: function(data){            alert(data);          }        });             }  </script></head><body>    <form action="uploadfile.php" method="post" enctype="multipart/form-data" id="form-id">    <p><input id="myfile" type="file" name="myfile" multiple=multiple/>    <input type="button" name="upload" id="upload" value="Upload" onclick="sendfile()" id="upload-button-id"  /></p>    </form></body></html>和PHP文件:<?php    $target = "uploadfolder/";     //for($i=0; $i <count($_FILES['myfile']['name']); $i++){        if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) {             echo 'Successfully copied';         }else{                   echo 'Sorry, could not copy';        }       }// ?>任何帮助将不胜感激。
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

Index.html


<html>

    <head>

        <title>Load files</title>

        <script src="jquery.min.js"></script>

        <script type="text/javascript">


            $(document).ready(function() {

                $('#myfiles').on("change", function() {

                    var myfiles = document.getElementById("myfiles");

                    var files = myfiles.files;

                    var data = new FormData();


                    for (i = 0; i < files.length; i++) {

                        data.append('file' + i, files[i]);

                    }


                    $.ajax({

                        url: 'load.php', 

                        type: 'POST',

                        contentType: false,

                        data: data,

                        processData: false,

                        cache: false

                    }).done(function(msg) {

                        $("#loadedfiles").append(msg);

                    });

                });




            });

        </script>

    </head>

    <body>


        <div id="upload">

            <div class="fileContainer">

                <input id="myfiles" type="file" name="myfiles[]" multiple="multiple" />

            </div>

        </div>

        <div id="loadedfiles">


        </div>

    </body>

</html>

load.php


<?php

    $path="myfiles/";//server path

    foreach ($_FILES as $key) {

        if($key['error'] == UPLOAD_ERR_OK ){

            $name = $key['name'];

            $temp = $key['tmp_name'];

            $size= ($key['size'] / 1000)."Kb";

            move_uploaded_file($temp, $path . $name);

            echo "

                <div>

                    <h12><strong>File Name: $name</strong></h2><br />

                    <h12><strong>Size: $size</strong></h2><br />

                    <hr>

                </div>

                ";

        }else{

            echo $key['error'];

        }

    }

?>


查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 591 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信