2011-11-17 14 views
7

mam migracji strony internetowej z serwera z WS2003, IIS6, PHP 5.2 na do serwera z WS2008, IIS7 i PHP 5.3przesyłanych plików uzyskać pierwszą literę odciąć

Mam formularza HTML, który przesłane pliki do witryny.

<?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> 

Działa świetnie na starym serwerze, ale na nowym serwerze odkłada pierwszą literę bez powodu, który widzę. Nie wiem, czy to ustawienie IIS, czy ustawienie PHP.
wyjściowa:

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 
     ) 

) 

Wyjście ze starego serwera, ten sam kod, sam plik:

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

Przymierz wyprowadzanie tylko: 'echo $ _FILES [ 'artimage'] [ 'name']' – Neal

+2

@neal: Że po prostu wyjście samo, że print_r/var_dump będzie. –

+0

Jak to pomoże? 'print_r' pokazuje to pole dobrze. – jli

Odpowiedz

5

To wygląda błędu jesteś doświadcza $_FILES 'name' missing first character after upload.

Mam ten sam problem.

+0

Dobrze, jeśli jest to związane z włączoną funkcją 'magic_quotes'. Dobrze ci tak! ;) – PeeHaa

+0

Mam włączone magiczne cytaty. I jest włączony na starym serwerze. PeeHaa, jeśli mogę zapytać, co jest nie tak z magicznymi cytatami? Jestem ciekawy, czy to jest coś, co powinienem spróbować usunąć. Tak było na tej stronie, odkąd ją odziedziczyłem, a ja nigdy nie dbałem o to, by chcieć się go pozbyć. @cosmoba, więc jest rozwiązanie tego, aby zainstalować wersję beta php? – AndyD273

+0

@ AndyD273: magic_quotes może być użyty, aby zapobiec iniekcjom sql, chociaż jest uważany za zły (dobrze, i jestem pewien, że wielu się zgodzi) z wielu powodów. Co się stanie, gdy w zależności od magic_quotes dla projektu, a ktoś inny zainstaluje projekt z wyłączonymi magic quotes? magic_quotes również wykonuje swoje zadanie na zmiennych, które nie są nawet używane do transakcji bazy danych (wydajność).Jeśli ktoś inny użyje serwera dla projektu, zepsuje oczekiwane wartości var. itp. Zasadniczo jest to "bezpieczeństwo" (w cudzysłowie) dla osób, które nie wiedzą, jak poprawnie napisać bezpieczny kod. – PeeHaa

1

Miałem ten sam problem i dużo poszukałem, ale to błąd i nie wiem dlaczego! Ale mam rozwiązanie i działa również. Wystarczy poprzedzić nazwę przed nazwą pliku. Przykład:

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

Czy nadal używasz PHP 5.3? Od pewnego czasu naprawdę cieszę się z PHP 7, więc jeśli masz możliwość uaktualnienia, możesz chcieć zajrzeć do niego. Ma kilka nowych funkcji i wiele poprawek bezpieczeństwa od 5.3 ... – AndyD273

+0

Tak, wiem, ale nie znam PHP 7, ponieważ jestem trochę zajęty. Dziękujemy za ocenę. –

Powiązane problemy