我最近一直在尝试使用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'; } }// ?>
任何帮助将不胜感激。
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']; } } ?>