Php $\u文件数组为空

Php $\u文件数组为空,php,file,Php,File,这是我第一次尝试上载文件,由于某种原因,$\u FILES数组为空。我已经检查了一次又一次我的HTML,它看起来不错。当我尝试在eclipse中调试下面的代码时,检查$\u Files数组时,它是空的。我已经检查了它的php_ini文件: <form action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id

这是我第一次尝试上载文件,由于某种原因,$\u FILES数组为空。我已经检查了一次又一次我的HTML,它看起来不错。当我尝试在eclipse中调试下面的代码时,检查$\u Files数组时,它是空的。我已经检查了它的php_ini文件:

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
  • 文件上传=打开
  • 上载\u最大\u文件大小=2M
表单位于fancybox模式窗口中。 我的HTML如下所示:

<form  action="/CiREM/attachments/addAttachmentsModal.php?requestId=120" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="120"/>
        <input type='hidden' id='listScreen' name='listScreen' value=""?>   
        <input type='hidden' name='MAX_FILE_SIZE' value='4000000' /><br/> <strong>Max File size Allowed: </strong>4 Mb <br/><strong>File Formats Allowed: </strong>gif,jpeg,jpg,png<br/><hr/>               <div class="control-group">


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>
                </div>
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>
                </div>
                    </div>
                    <div class ="clear"></div>
                        <input id="addAttachmentsBtn" type="submit" class="btn btn-primary btn-large" value="Add Attachments"/>
                    </form>         
<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>


允许的最大文件大小:4MB
允许的文件格式:gif、jpeg、jpg、png



我的php是

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>


在不查看意大利面代码的情况下,首先检查您的$\u帖子是否也是空的

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>

如果是,请确保post_max_大小大于upload_max_filesize。这两种设置必须是一致的。

首先,很抱歉回复太晚,但由于有时人们会偶然发现有关stackoverflow的旧主题,所以我决定按照自己的方式编写

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
因此,要通过ajax发送文件,必须使用FormData

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
我将粘贴一个指向github项目的链接,我必须通过ajax提交表单,这样您就可以检查工作示例并将代码片段粘贴到这里

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
链接:

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
代码:

<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>
$( "form" ).on('submit',function( event ) {
        if($(this).attr('ajax')){
            event.preventDefault();
            var marianaFormUrl = $(this).attr('action');
            var marianaFormId = $(this).attr('id');
            var marianaFormMethod = $(this).attr('type');
            var marianaFormSucess = $(this).attr('success');
            var marianaFormComplete = $(this).attr('complete');
            var marianaFormBefore = $(this).attr('before');
            var marianaFormInputs = $('#' + marianaFormId +' :input');
            var marianaEncType = $(this).attr('enctype');
            var marianaFormData = {};

            // Set enctype
            if(marianaEncType === undefined || marianaEncType == ''){
                $(this).attr('enctype','multipart/form-data');
            }

            // Run Ajax Call
            $.ajax({
                url: marianaFormUrl,
                type: marianaFormMethod,
                dataType: 'JSON',
                data: new FormData( this ),
                processData: false,
                contentType: false,
                cache: false,
                success:function(data){
                    // Run success
                    if(marianaFormSucess !== undefined && marianaFormSucess !== ''){
                        var fn = marianaFormSucess;
                        var func = fn +'( data )';
                        eval(func);
                    }
                },
                complete:function(data){
                    // Run complete
                    if(marianaFormComplete !== undefined && marianaFormComplete !== ''){
                        var fn = marianaFormComplete;
                        var func = fn +'( data )';
                        eval(func);
                    }
                }
            });
        }
    });

就是这样,使用formData它可以很好地发送文件。

您的PHP只输出与HTML类似的表单。真正有问题的代码在哪里?我认为删除不必要的东西以使其可压缩会对您(和其他人)有利。例如,
与此无关。它所做的只是使问题复杂化。另外,看起来您只是在向我们展示两个表单,您的代码中甚至没有单词
$\u FILES
。。。同样,在你的帖子正文中,你引用了不正确的
$\u文件
。实际处理上传文件的代码在哪里?我认为
id=“upload\u file[]”
不是有效的HTML,但我怀疑这会导致你的问题。你不需要指定
method=“post”
?我只是这样做了,但它不起作用。如果我查看php日志会有帮助吗?
<form  action="<?php echo $_SERVER['PHP_SELF']."?requestId=".$requestId?>" enctype="multipart/form-data" method="post" id="addattachment" name="addattachment" class="form-vertical" autocomplete="off">
        <input type='hidden' id='requestId' name='requestId' value="<?php echo $requestId;?>"/>
        <input type='hidden' id='listScreen' name='listScreen' value="<?php echo $listScreen;?>"?>  
        <?php 
        if ($CIREM['MAX_IMG_NUM']>0){
            echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$CIREM['MAX_IMG_SIZE']."' />";
            echo "<br/> <strong>Max File size Allowed: </strong>".($CIREM['MAX_IMG_SIZE']/1000000)." Mb <br/><strong>File Formats Allowed: </strong>".$CIREM['IMG_TYPES']."<br/><hr/>";?>

        <?php   for ($i=1;$i<=$CIREM['MAX_IMG_NUM'];$i++){?>


                <div class="controls input">
                    <input class="input-file" type="file" name="upload_file[]" id="upload_file[]"/><br/>
                </div>

            <?php }?>

        <?php }
        else{
            echo "<p class='alert alert-info'>Attachment uploading is not allowed</p>";
        }
        ?>