加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – JQuery多文件上传

发布时间:2020-12-13 15:56:33 所属栏目:PHP教程 来源:网络整理
导读:我尝试使用以下代码上传多个文件时遇到问题.当我尝试选择多个文件时,我只显示多个文件中的第一个文件.如何获取所有这些文件名以及临时名称和类型等所有信息? 这是用于多次上传的HTML代码: form id="imageform" method="post" enctype="multipart/form-data
我尝试使用以下代码上传多个文件时遇到问题.当我尝试选择多个文件时,我只显示多个文件中的第一个文件.如何获取所有这些文件名以及临时名称和类型等所有信息?

这是用于多次上传的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","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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读