2015-06-23 80 views
4

我嘗試使用以下代碼上傳多個文件時出現問題。當我試圖選擇多個文件時,我只顯示來自多個文件的第一個文件。我如何獲得所有這些文件名與所有信息,如臨時名稱和類型?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的調用只顯示一個文件名,但它應該是所有文件的數組名字是對的?

如何獲取所有上傳的文件?

+0

print_r($ _ FILES)返回什麼? – astroanu

+0

空陣列.......... –

回答

1

我發現本教程的多圖像上傳。 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

+0

讓我們試一試,就像你解釋過的那樣,我也在跟着這個例子。現在試圖改變jquery.wallform.js –

+0

好吧,我在線,只是告訴我它是否可以工作 –

+0

還有一件事,除了數據庫插入查詢外,請使用該示例 –