php – JQuery多文件上传

我尝试使用以下代码上传多个文件时遇到问题.当我尝试选择多个文件时,我只显示多个文件中的第一个文件.如何获取所有这些文件名以及临时名称和类型等所有信息?

这是用于多次上传的HTML代码:

<form id="imageform" method="post" enctype="multipart/form-data" action='ajaxImageUpload.php' style="clear:both">
<h3>Upload your Documents Here</h3> 
<div id='imageloadstatus' style='display:none'><img src="loader.gif" alt="Uploading...."/></div>
<div id='imageloadbutton'>
<style>
.col-md-4 {
    float: none;
}
</style>

<div class="col-md-4">


 <div class="input-group">
                     <label for="startDate">Select Month-Year :</label><br />
                     <input name="startDate" id="startDate" class="date-picker form-control" placeholder="Select Month-Year" />

                    </div>
                    <br />
                    <br />
                      <script src="js/jquery.monthpicker.min.js"></script> 

<script>
$(document).ready(function() {

    $('#startDate').monthpicker();

    });
    </script>


<input type="file" name="photos[]" id="photoimg" multiple="true" class="form-control" />
</div>
<br />
<br />
</div>
</form>

这是JQuery ajax调用:

 $('#photoimg').die('click').live('change', function(){ 
                   //$("#preview").html('');

         if($('#startDate').val()=='' ||  $('#startDate').val()==null )
         {
            alert("Select Month/year");
            return false;
         }
         else
         {
            var d=$('#startDate').val();
           $.ajax({
        type: "POST",
        url: "mdoc_upld.php",
        data: {'startDate':d,'files': $('#photoimg').val()}
    }).done(function(data){
        $("#preview").html(data);
         });
         }
        });

最后,这是上传文件的处理方式:

require_once "connection.php";
define ("MAX_SIZE","9000"); 
function getExtension($str)
{
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
}


$valid_formats = array("pdf", "xls","xlsx","doc","docx");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") 
{
    print_r($_POST);exit;
    if(isset($_POST['startDate']) && $_POST['startDate'] !='')
    {
        $d=$_POST['startDate'];
       // $unixtime = 602294400;
        $time = date("Y-m",$d);
        //echo $time ;

    }

对print_r的调用只显示一个文件名,但它应该是所有文件名的数组吗?

如何访问上传的所有文件?

解决方法:

我发现这个教程用于多个图像上传. here is link to tutorial

如果你想上传pdf文件或任何其他文件,你只需要在ajaxImageupload.php中替换以下行

$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");

用这条线

$valid_formats = array("pdf", "doc", "docx");

在此添加更多文件扩展名.

还有一件事,如果您正在按照本教程为任何文件类型上传多个文件,您只需要替换以下代码jquery.wallform.js

        var exp = /<img[^>]+>/i;

        expResult = data.match(exp);
       if(expResult == null)
       {
        alert("Something went wrong.");
       }
       else{
        $(options.target).prepend(data);
        }

使用此代码:

$(options.target).prepend(data);

在这里你完成了.享受和信誉到9lessons

相关文章

$.AJAX()方法中的PROCESSDATA参数 在使用jQuery的$.ajax()方...
form表单提交的几种方式 表单提交方式一:直接利用form表单提...
文章浏览阅读1.3k次。AJAX的无刷新机制使得在注册系统中对于...
文章浏览阅读1.2k次。 本文将解释如何使用AJAX和JSON分析器在...
文章浏览阅读2.2k次。/************************** 创建XML...
文章浏览阅读3.7k次。在ajax应用中,通常一个页面要同时发送...