2011-11-17 20 views
7

sto migrazione di un sito web da un server con WS2003, IIS6, PHP 5.2 su un server con WS2008, IIS7 e PHP 5.3file caricato ottenere la prima lettera tagliare

Ho un modulo HTML che arrivi file al sito.

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

Grandi opere sul vecchio server, ma sul nuovo server, costolette fuori la prima lettera per nessun motivo posso vedere. Non so se si tratta di un'impostazione di IIS o di un'impostazione PHP.
uscita:

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 
     ) 

) 

uscita dal vecchio server, stesso codice, stesso file:

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

Prova emettere solo: 'echo $ _FILES [ 'Artimage'] [ 'name']' – Neal

+2

@neal: che aveva appena uscita la stessa cosa che print_r/var_dump avrebbe fatto. –

+0

Come sarebbe di aiuto? 'print_r' mostra quel campo bene. – jli

risposta

5

Questo appare come il bug si verificano $_FILES 'name' missing first character after upload.

Sto avendo lo stesso problema.

+0

Beh, se è collegato a "magic_quotes' abilitato. Ti fa bene! ;) – PeeHaa

+0

Ho abilitato le virgolette magiche. Ed è abilitato sul vecchio server. PeeHaa, se posso chiedere, cosa c'è di sbagliato nelle citazioni magiche? Sono curioso, se è qualcosa che dovrei provare a eliminare. È stato così su questo sito da quando l'ho ereditato, e non mi è mai importato abbastanza da voler provare a liberarmene. @cosmoba, quindi è la soluzione a questo per installare la versione beta di PHP? – AndyD273

+0

@ AndyD273: magic_quotes può essere usato per prevenire l'injection sql anche se è considerato negativo (beh, lo so, e sono sicuro che molti saranno d'accordo) per molteplici ragioni. Cosa succederà quando si dipende da magic_quotes per un progetto e qualcun altro installa il progetto con virgolette disabilitate? magic_quotes fa anche il suo lavoro su variabili che non vengono neppure utilizzate per le transazioni del database (prestazioni).Se qualcun altro usa il server per un progetto, rovinerà i suoi var var previsti. ecc. Fondamentalmente è "sicurezza" (tra virgolette) per persone che non sanno come scrivere correttamente un codice sicuro. – PeeHaa

1

Ho avuto lo stesso problema e ho cercato molto ma è un bug e non so perché! Ma ho una soluzione e funziona pure. Basta prefisso un nome prima del nome del file. Esempio:

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

Stai ancora usando PHP 5.3? Mi è piaciuto molto PHP 7 per un po 'di tempo, quindi se hai la possibilità di eseguire l'aggiornamento potresti voler dare un'occhiata. Ha alcune nuove funzionalità e molte correzioni di sicurezza da 5.3 ... – AndyD273

+0

Sì, lo so, ma non ho familiarità con PHP 7 perché sono un po 'occupato. Grazie per il tuo voto. –

Problemi correlati