2011-11-17 54 views
7

我从WS2003服务器迁移网站,IIS6,PHP 5.2与WS2008,IIS7和PHP的服务器超过530文件被上传获得的第一个字母切断

我有一个HTML表单上传文件到网站。

<?php 
if(isset($_POST["Upload"])){ 
    echo "<pre>"; 
    print_r($_POST); 
    print_r($_FILES); 
    echo "</pre>"; 
} 
?> 

<form action="tester.php" method="post" enctype="multipart/form-data"> 
    <input type="hidden" name="Upload" value="1" /> 
    <input type="hidden" name="MAX_FILE_SIZE" value="4500000" /> 
    <input type="file" name="artImage" id="artImage" /> 
    <input type="submit" /> 
</form> 
旧服务器上

伟大的作品,但在新服务器上,它砍掉没有任何理由,我可以看到的第一个字母。我不知道它是IIS设置还是PHP设置。
输出:从旧服务器

Array 
(
    [Upload] => 1 
    [MAX_FILE_SIZE] => 4500000 
) 
Array 
(
    [artImage] => Array 
     (
      [name] => easons_Change_(HD_Ready).jpg 
      [type] => image/pjpeg 
      [tmp_name] => C:\Windows\Temp\php99.tmp 
      [error] => 0 
      [size] => 498879 
     ) 

) 

输出,相同的代码,相同的文件:

Array 
(
    [Upload] => 1 
    [MAX_FILE_SIZE] => 4500000 
) 
Array 
(
    [artImage] => Array 
     (
      [name] => Seasons_Change_(HD_Ready).jpg 
      [type] => image/pjpeg 
      [tmp_name] => C:\WINDOWS\Temp\php6835.tmp 
      [error] => 0 
      [size] => 498879 
     ) 

) 
+0

尽量输出只是:'回声$ _FILES [ 'artImage'] [ '名']' – Neal

+2

@neal:那会刚刚输出的print_r /的var_dump将同样的事情。 –

+0

这会有帮助吗? 'print_r'显示该字段很好。 – jli

回答

5

这就像你正在经历$_FILES 'name' missing first character after upload.

我有同样的问题的bug。

+0

那么,如果它与'magic_quotes'被启用有关。为您服务! ;) – PeeHaa

+0

我确实有魔术引号启用。它在旧服务器上启用。 PeeHaa,如果我可能会问,魔术引号有什么问题?我很好奇,如果这是我应该试着去除的东西。自从我继承了它之后,它就一直在这个网站上,我从来没有关心过要试图摆脱它。 @cosmoba,这是解决这个安装测试版的PHP? – AndyD273

+0

@ AndyD273:出于多种原因,magic_quotes可以用来防止sql注入,虽然它被认为是不好的(嗯,我相信很多人会同意)。当依赖于magic_quotes项目时会发生什么情况,some1会使用禁用的魔术引号来安装项目? magic_quotes也适用于甚至不用于数据库事务(性能)的变量。如果some1其他人使用服务器进行项目,它会搞砸他预期的var值。等等。基本上,对于不懂如何正确编写安全代码的人来说,它是'安全'(在引号内)。 – PeeHaa

1

我有同样的问题,并搜索了很多,但它是一个错误,我不知道为什么!但我有解决方案,它也适用。 只需在文件名前添加一个名称即可。例如:

'fileNamePrefix_' . $_FILES['file_name_attribute']['name'] 
+0

你还在使用PHP 5.3吗?我已经很享受PHP 7一段时间了,所以如果你有升级的能力,你可能需要考虑一下。它有一些整洁的新功能,并且自5.3以来有很多安全修复程序... – AndyD273

+0

是的,我知道但我不熟悉PHP 7,因为我有点忙。谢谢你的评价。 –

相关问题