Idioma:

Enviar un archivo en el servidor mediante PHP

10 Febrero 2011 | En Web | 4,9 mil vistas | Por

Haga clic en & compartir: 


PHP soporta muchas características, por lo que su gran éxito entre los programadores que buscan facilitar la programación, soporta bases de datos,
Funciona independientemente del sistema operativo y del hardware, entre otros.

Dentro de las características de PHP es el soporte para el envío archivos al servidor mediante un formulario HTML. Cualquier tipo de archivo puede enviarse al servidor, ya sea una imagen, un archivo de texto, una base de datos, etc.., o mejor decir, es el archivo de texto o binario.

Para enviar un archivo, Primero tenemos que crear un formulario para el usuario indicar el archivo que desea enviar:

<form method=post enctype="multipart/form-data" action="teste.php">
<input type="file" name="arquivo">
<input type="submit" name="submit" value="Enviar arquivo">
</form>

ATENCIÓN: El parámetro “propiedad enctype” Es obligatorio, sin ella no puede enviar el archivo al servidor!

Para php acepta el archivo, algunos parámetros deben configurarse correctamente en php:

file_uploads = On - O PHP aceita o envio de arquivo;

upload_tmp_dir = Qual o diretório que onde o php guardará "temporariamente" o arquivo enviado.

upload_max_filesize = 2M - Tamanho máximo do arquivo aceito pelo php

Normalmente el PHP se ha configurado para aceptar cargas de archivos, pero siempre es bueno comprobar la configuración de php.ini no tener dolores de cabeza más tarde.

Además el límite de tamaño de archivo impuesto por la configuración de php (sirve para todos los scripts de servidor) También podemos limitar el tamaño utilizando una configuración del formulario:

<input type="hidden" name="MAX_FILE_SIZE" value="1024">

En este caso tenemos que limitar el tamaño máximo del archivo en 1024 bytes. Pero no es recomendable que confías en este parámetro, porque cualquiera con algunos conocimientos de HTML podrá eliminar este límite. A continuación te voy a mostrar otra solución para esto.

Esta bien, ha seleccionado el archivo que se cargará y presiona el botón “Enviar archivo”, Si los polluelos que un archivo del formulario anterior y un “Teste.php” (puede ser el mismo archivo de formulario) el explorador del usuario enviará el archivo al servidor, y se va a pasar nada, Además de php han guardado el archivo en el directorio temporal y elimina el archivo al final de la ejecución del script. Así que tendremos que hacer nada con el archivo. Después de recibir el archivo, PHP guardarlo en un directorio temporal, con un nombre elegido por él, y crea múltiples variables globales con la información de este archivo, basado en el nombre elegido para el campo, en nuestro caso “archivo”:

$arquivo : nome do arquivo, com seu caminho absoluto, onde o php o guardou
$arquivo_name : nome do arquivo, absoluto, na máquina do utilizador
$arquivo_size : tamanho em bytes do arquivo
$arquivo_type : tipo "MIME" do arquivo

Con estas variables pueden ahora hacer nada con el archivo. Podemos, por ejemplo, Compruebe que el archivo tiene un tamaño por debajo del límite máximo que desea enviar (Esto es muy importante, porque alguien hace que sea imposible enviar un archivo tan grande puede bloquear el servidor). Utilizamos la siguiente secuencia de comandos:

<?php
if($arquivo_size > 1024) {
print "O tamanho do arquivo é maior do que o limite permitido<br>";
exit;
}
?>

No dejar algunos usuarios enojados, Juntos podemos usar ambas opciones, el límite configurado dentro de la forma y el límite dentro de la secuencia de comandos, usuarios tan normales no tendrán la decepción que esperar varios minutos para enviar el archivo al servidor y sólo después de ser advertido de que el archivo es demasiado grande, por lo que el navegador queja de el tamaño demasiado grande antes de enviar el archivo, y los usuarios “Wise guys” será una decepción para encontrar que hubo otra limitación.

Debemos hacer algo con el archivo antes de terminar la secuencia de comandos, de lo contrario lo eliminará php. Tenemos el nombre del archivo en la variable “archivo”, entonces tenemos que ponerlo en lugar del servidor. Podemos usar la función php “copia”. Requiere que la función de copia 2 parámetros: origen y destino, y devuelve verdadero o falso, es decir, Si ha copiado o no. Atención para quem vai usar este método num sistema Linux, UNIX o cualquier otro que tiene soporte para permisos de archivo, porque la función “copia” se ejecutará una copia del archivo como el usuario que ejecuta el servidor, Por lo tanto, Si el grupo de usuario ejecuta el servidor no tiene permiso de escritura en el directorio de destino, no podrá copiar el archivo existe. En este caso, intente escribir en/tmp, No tiene permiso de escritura para todos los usuarios, o dar permiso a un directorio específico para escribir los archivos sólo. Suponiendo que el servidor tiene permiso de escritura en el subdirectorio de archivo del directorio de nuestro script, Vamos a escribir:

<?php
....
if(copy($arquivo,"arquivo/arquivo_do_utilizador")) {
print "O arquivo foi recebido com êxito!<br>";
} else {
print "Ocorreu um erro ao receber o arquivo!<br>";
}
?>

Listo, ahora el archivo se ha guardado como archivo de arquivo_do_utilizador en el subdirectorio. Tenga en cuenta que todos los usuarios que envían el archivo al servidor tu archivo guardado con el mismo nombre, Por lo tanto, existirá un solo archivo, y será el último usuario que ha enviado el archivo.

Para el lector es el ejercicio para crear un único archivo para cada usuario y que un usuario no puede enviar más de tres archivos de inicio de sesión.

En Ivaiporã-PR, Ingeniero informático, Administrador del grupo de trabajo consejos en General. Apasionado de la tecnología y la informática.



Un poco sobre nosotros

    Generalmente, el grupo apareció en consejos 2007 de ideas innovadoras sobre problemas que enfrentan diariamente por aquellos que utilizan la ciencia tecnología y equipo, los usuarios normales y técnicos. Pero donde hizo, ¿por qué y cuál es el propósito de este sitio?

Haga clic aquí para leer!

Siga o Dicas em Geral no Google+

Video de la semana