我找不到理解和解决这个问题的方法,而且我做了很多。
我有一个脚本,希望是一个简单的表单,通过POST发送文件。第二个文件,处理信息。
默认情况下,我向用户提供了一些字段,其中一个字段是“file”类型的输入字段,还有一些“隐藏”字段,这些字段为我提供了在POST上使用的值。
我发现,当添加类型为“file”的新输入时,$ _POST返回数组0,即使$ _FILES也不返回任何内容。我不知道如何解决这个问题,并且在保留“文件”类型的默认输入框时它可以正常工作。
<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>
这只发生在:
<input type="file" id="video" name="video" class="validate['required','video']" cols="100">
存在!
var_dump( $_POST )
或$_FILES
,print_r()
等不返回任何内容。我已经试图在类型“文件”的输入上创建一个数组,比如img_p_child[]
,但没有。
如何解决这个问题?
感谢您抽出宝贵时间!
我忘了提到这一点,我现在想知道在第二个输入字段中发送图像文件并且有效,但不能使用.FLV文件。所以我怀疑有一个最大的权限,我需要在php.ini上更改,如果是这样,我很抱歉! :X
答案 0 :(得分:6)
取自php.net:
post_max_size会影响文件上传。要上传大文件,请执行此操作 value必须大于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;
将以下内容添加到根目录中的.htaccess文件中。
php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 18M
显然,这些尺寸会根据您的需求而有所不同。关于增加上传大小的Here is a nice article。