Ver Mensaje Individual
  #10 (permalink)  
Antiguo 13/01/2006, 03:32
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
mau:
A PHP solo le corresponde recibir el archivo, validar de ser neceario, y colocarlo en la ubicación final... La imágen que compartes solo da la idea de lo que quieres (un upload vía HTTP común), pero no corresponde a PHP "llegar a eso".

Lo de los botónes no lo podrás hacer con simple HTML, el motivo es que, para el envio de archivos necesitas de un filebox (<input type="file" ...) y este contiene el botón "Exáminar..." y la caja al lado, no hay manera de quitar eso.

He visto un par de trucos, uno con JS que solo servia para IExplorer antes de la versión 6, el segundo con CSS, se trataba de "transparentar" el filebox y sobreponer una imágen... todo esto para lograr que se viera solo el botón "Buscar". Para previsualizar el archivo (aunque dices no es necesario), en las FAQ de JavaScript hay algo, pero igual es válido solo para IExplorer, colaboradores de aquel foro estaban buscando la manera de hacerlo valer en otros navegadores, no sé a qué llegaron. Quizá y se pueda hacer con un applet JAVA (no JavaScript) , si se puede hacer con Flash no lo sé. Todo esto corresponde "al cliente", recordemos que PHP es un lenguaje del lado del servidor.

El cómo PHP recibe ficheros, los valida y posiciona, repito, esta en las FAQ (la #12) y es tema muy tratado. Apenas unos post atrás se acaba de mencionar un upload solo de imágenes.


Cubatron:
En tu script combinas métodos de recepción de variables, este puede ser el motivo del por qué no le funciona a los compañeros. Lo que usas es obsoleto, debes usar variables superglobales; esto se explica en otra FAQ: http://www.forosdelweb.com/showthrea...989#post238989

Además procura hacer la alidación con la función empty(). Ejemplo de cómo debe quedar:
Código PHP:
 if (!empty($_POST['enviado'])) { 
Otra cosa es que el tipo de validación que haces (por extensión) no es fiable (segura). Lo que tú tomas por extención es fácilmente violable (archivo.exe.jpg), lo idóneo es validar por el MIME TYPE del archivo, esto lo obtienes con $_FILES['archivo']['type']... se explica en la FAQ que mencioné desde un inicio y ahí mismo tienes una lista completa de la relación MIME_TYPE - extesión.


sck1983:
Restringir como tal, no. Volvemos a que PHP es un lenguaje del lado del servidor, por lo tanto para poder trabajar con el archivo este debe estar en el servidor, osea que ya se habrá subido. Sin embargo puedes dejarlo en la carpeta temporal (lee la FAQ #12) ó incluso borrarlo si no cumple con tus requisitos.

Las dimensiones de la imágen las puedes obtener mediante la función getimagesize(), te devuelve un array cuyos dos primeros índices serán el ancho y alto respectivamente:
Código PHP:
$atr getimagesize("archivo.jpg");
$ancho$atr[0];
$alto$atr[1];
// ya ocupas $ancho y $alto para hacer tus validaciones.. obviamente antes deberás comprobar que es una imágen 
Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"