2011-08-16 7 views
15

Tengo un formulario donde publico campos diferentes y cada tipo de campo publicado parece funcionar excepto el tipo de archivo de entrada.Contabilización del problema de archivo de tipo de entrada Sin valor publicado

Estoy usando var_dump($_POST); y todos los otros campos están ahí pero nada en el archivo de tipo de entrada.

Mi forma parte ve así:

<form enctype="multipart/form-data" id="ajax-form" action="index2.php" method="POST" data-ajax="true"> 

y funciona bien para todo lo demás.

Si hay algo diferente en el archivo de tipo de entrada?

<input type="text" id="myid" name="myid" value="" /> ..This posts value 

<input id="theimage" name="theimage" type="file" /> .. does not post value 

¿Alguna idea de alguien?

+5

+1 Porque en serio, esta pregunta no se ha hecho aún? Recuerdo que me sentí increíblemente frustrado la primera vez que tuve que resolverlo. –

Respuesta

29

Los archivos se almacenan en $ _FILES, $ _POST no

http://php.net/manual/en/reserved.variables.files.php $ _FILES variables

http://www.php.net/manual/en/features.file-upload.php Manual de Cargas de archivos PHP.

que maneje los archivos (sin comprobación de errores):

$ROOT = "/path/to/store/files"; 
foreach($_FILES as $file => $details) 
{ // Move each file from its temp directory to $ROOT 
    $temp = $details['tmp_name']; 
    $target = $details['name']; 
    move_uploaded_file($temp, $ROOT.'/'.$target); 
} 

Ver también http://www.php.net/manual/en/function.move-uploaded-file.php para más ejemplos.

+0

Acabo de intentar: echo @ $ _ FILES ["theimage"]; pero devuelve una matriz ... ¿cómo puedo obtener el nombre de archivo en una variable? – Satch3000

+0

Si var_dump el conjunto, verá que está diseñado con varias entradas, una para cada archivo, y luego varios datos sobre el archivo. Editaré mi publicación con un ejemplo. –

+0

http://www.php.net/manual/en/features.file-upload.post-method.php detalla el diseño de la matriz $ _FILES. –

0

En realidad, si prueba Firefox (> 13), puede obtener el valor publicado. Pero si usa Chrome o Safari, no puede obtener el valor publicado. Creo que está relacionado con los navegadores.

Cuestiones relacionadas