El archivo queda a donde lo mandes con move_uploaded_file, al parecer
tienes una configuración con el parámetro '/home/mi_usuario', pero
cual es el valor?
Ten cuidado si suben dos archivos con el mismo nombre el segundo
archivo va a sobreescribir al primero. Mejor renombralos con un id o
algo.
En la documentación hay un ejemplo mucho mejor que valida a través del
formulario y utiliza sfValidatedFile para mover el archivo en lugar de
hacerlo a mano con move_uploaded_file:
http://www.symfony-project.org/forms/1_4/en/02-Form-Validation#chapter_02_file_upload
Saludos
--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.
public function executeUpload(sfWebRequest $request) { foreach ($request->getFiles() as $uploadedFile) { $uploadDir = sfConfig::get('sf_upload_dir'); move_uploaded_file($uploadedFile["tmp_name"], $uploadDir . "/" . $uploadedFile["name"] ); } }
<input type="file" id="file" name="file"/><br/> <input type="submit" value="Upload!"/>
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.
Es algun valor que debe estar setteado con sfConfig en alguna parte de
tu configuración. sf_upload_dir debería apuntar a un directorio donde
guardar los archivos que subes, y este directorio debería tener
permisos de escritura para el usuario que corre el servidor web, ahora
si quieres puedes dejar de usar esa variable y harcodear el directorio
pero no es recomendable.
> tampoco tmp_name ni name y si se supone que tengo un form con estos campos:
tmp_name es la ruta temporal del archivo que se acaba de subir, name
es el nombre con el que subio
Basicamente lo que debes hacer es mover el archivo de tmp_name a donde
quieras ponerlo
>
> <input type="file" id="file" name="file"/><br/>
> <input type="submit" value="Upload!"/>
>
> Si pueden explicarme cómo funciona me sería de gran utilidad, pues es lo
> primero que necesito para subir el archivo excel.
> Saludos Cordiales.
Puedes ver más información en la doc de php, por cierto
$request->getFiles() te devuelve la variable global $_FILES
http://www.php.net/manual/es/features.file-upload.post-method.php
http://www.php.net/manual/es/function.move-uploaded-file.php
Saludos
> ...
En ese mismo documento muestran una manera, en la siguiente linea:
> $filename = 'uploaded_'.sha1($file->getOriginalName());
El nombre con el que guardan el documento no es el nombre con el que
lo subieron sino 'uploaded_' más un hash sha1 del nombre original, lo
que podrías hacer para que no se sobreescriba si subes otro con el
mismo nombre (y que generaría el mismo hash) es meterle un numero
aleatorio o la fecha actual para que cada vez te de un hash distinto:
$filename = 'uploaded_'.sha1($file->getOriginalName() . time());
O sino, si además guardas la información de cada archivo que suben a
la aplicación (en este caso diría que es recomendable por que así
podrías guardar el nombre original en la base de datos), podrías
utilizar el id del registro creado en el nombre del archivo.
$filename = 'uploaded_'.sha1($file->getOriginalName()) . '_' . $id;
Saludos