¿Es posible recibir archivos cargados en PHP sin almacenarlos en el sistema de archivos?

Hasta donde yo sé, PHP almacena todos los archivos cargados en upload_tmp_dir (o el directorio tmp predeterminado del sistema, si upload_tmp_dir no está configurado en el archivo php.ini).

Entonces, el método habitual es mover ese archivo a otro lugar usando move_uploaded_file

Mi pregunta es: ¿Hay alguna forma de recuperar el archivo en una variable? Entonces, ¿no es necesario almacenarlo en el sistema de archivos en ningún momento?

Las razones son que no tengo que limpiar los archivos después y no tengo que preocuparme por los permisos del sistema de archivos.

preguntado el 08 de noviembre de 11 a las 13:11

2 Respuestas

$contents = file_get_contents($_FILES['name']['tmp_name']);

Por lo general, es seguro dejar el archivo temporal como está, PHP se encargará de eliminarlo al final de la solicitud (a menos que PHP falle durante el script).

respondido 08 nov., 11:17

Parece que no hay forma de rodear al menos este lugar donde los archivos deben almacenarse. - JochenJung

Probablemente pueda leer el archivo temporal, convertirlo a Base64 (por ejemplo) y almacenarlo en una variable.

respondido 08 nov., 11:17

No es necesario convertir a B64, las variables de PHP pueden contener datos binarios. - lanzz

Estaba sugiriendo B64 en caso de que quisiera mostrarlo con CSS, por ejemplo. No sé el uso que le dará a los datos. - SERPRO

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.