2011-11-17 31 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,因爲我有點忙。謝謝你的評價。 –