添加新输入类型"file"后,$ _POST变为空

pun*_*bit 1 php file-upload

我找不到理解和解决这个问题的方法,而且我做了很多.

我有一个脚本,希望是一个简单的表单,通过POST发送文件.第二个文件,处理信息.

默认情况下,我向用户提供了一些字段,其中一个字段是"file"类型的输入字段,还有一些"隐藏"字段,这使我可以在POST上使用值.

我发现,当添加类型为"file"的新输入时,$ _POST返回数组0,即使$ _FILES也不返回任何内容.我不知道如何解决这个问题,并且在保持"file"类型的默认输入框时它可以正常工作.

<form id="formulario" enctype="multipart/form-data" action="projectos_processar.php" method="POST">

    Modo inserir projecto item!<br/><br/>
    <label>Imagem de apresentacao: </label>

    <input id="img_p_child" type="file" name="img_p_child" cols="100" value="" class="validate['required','image']" /><br/>

    <br/>
    <br/>

    <input type="file" id="video" name="video" class="validate['required','video']" cols="100">

    <br/>                       
    <br/>
    <hr>
    Publicar o item ? <br/>
    <br/>
    <br/>                       

    Sim <input type="radio" name="published" value="1"><br>
    Nao <input type="radio" name="published" value="0" checked="true"><br>

    <hr>

    <!-- INICIO:: CAMPOS EM MODO HIDDEN -->
    <input type="hidden" value="center" name="crop_X_Y" />
    <input  type="hidden" value="assets/publicidade/FURIOUS01/" name="stringDirPagina" />
    <input  type="hidden" value="128" name="parent_id" />
    <input  type="hidden" value="projectos_item" name="pagina_id"/>
    <input  type="hidden" value="inserir" name="tarefa" />
    <!-- FIM:: CAMPOS EM MODO HIDDEN -->

    <br/>
    <input type="submit" value="Enviar" />
</form>
Run Code Online (Sandbox Code Playgroud)

这只发生在:

<input type="file" id="video" name="video" class="validate['required','video']" cols="100">
Run Code Online (Sandbox Code Playgroud)

存在!

var_dump( $_POST )或者$_FILES,print_r()等返回任何结果.我已经试图在"文件"类型的输入上创建一个数组img_p_child[],但是没有.

怎么解决这个?

谢谢你抽出宝贵的时间!


我忘了提到这一点,我现在在第二个输入字段中发送图像文件并且可以工作,但不能使用.FLV文件.所以我怀疑有一个最大的权限,我需要在php.ini上更改,如果是这样,我很抱歉!:X

Car*_*all 6

来自php.net:

post_max_size影响文件上传.要上传大文件,此值必须大于upload_max_filesize.如果配置脚本启用了内存限制,则memory_limit也会影响文件上载.一般来说,memory_limit应该大于post_max_size.使用整数时,该值以字节为单位进行测量.也可以使用速记符号.如果发布数据的大小大于post_max_size,则$ _POST和$ _FILES超全局变量为空.这可以通过各种方式跟踪,例如,通过将$ _GET变量传递给处理数据的脚本,即,然后检查是否设置了$ _GET ['processed'].

memory_limit设置允许脚本分配的最大内存量(以字节为单位).这有助于防止编写糟糕的脚本占用服务器上的所有可用内存.请注意,要没有内存限制,请将此指令设置为-1.

话虽这么说,你需要改变你的php.ini中的一些东西,以允许更大的上传:

upload_max_filesize = 10M;
post_max_size = 20M;
memory_limit = 18M; 
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到根目录中的.htaccess文件中.

php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 18M 
Run Code Online (Sandbox Code Playgroud)

显然,这些尺寸会根据您的需求而有所不同.这是一篇关于增加上传大小的好文章.