我找不到理解和解决这个问题的方法,而且我做了很多.
我有一个脚本,希望是一个简单的表单,通过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
来自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)
显然,这些尺寸会根据您的需求而有所不同.这是一篇关于增加上传大小的好文章.