Programación Web y Scripting > PHP

 subir archivos

(1/2) > >>

cesand:
hola gente..

estoy comenzado con el tema de subir archivos... no logro hacerlo y nose qu esta mal la verdad..
muestro mis codigos el form y el que procesa despues espero le puedan dar una miradita por ahi el error esta a la vista.


--- Código: PHP ---<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Documento sin título</title></head> <body><h1>Subir nuevo archivo</h1><form enctype="multipart/form-data" action="subir.php" method="post"><input type="hidden" name="MAX_FILE_SIZE" value="1000">Upload this file <input name="userfile" type="file"><input type="submit" value="Send File"></form> </body></html>  
aca el qu lo procesa:


--- Código: PHP ---<?php //tomo el valor de un elemento de tipo texto del formulario$cadenatexto=$_POST['cadenatexto'];echo "Escribió en el campo de texto:".$cadenatexto."<br><br>";$nombre_archivo=$_FILES['userfile']['name'];$tipo_archivo=$_FILES['userfile']['type'];$tamano_archivo=$_FILES['userfile']['size'];//compruebo si las características del archivo son las que deseoif (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 10000))) { echo "La extensión o el tamaño de los archivos no es correcta Se permiten archivos .gif o .jpg se permiten archivos de 1000 Kb máximo.";} elseif (move_uploaded_file($_FILES['userfile']['tmp_name'],$nombre_archivo)) {echo "El archivo ha sido cargado correctamente.";} else {echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";}?>  

aguardo como siempre sus ayusa que siempre me han dado ayudas enormes.

saludos

DriverOp:
¿Aparece algún mensaje de error o qué es lo que pasa?

cesand:
gracias por responder driver...

en principio el problema esta en que selecciono la foto y cuando apreto para procesar no pasa este if


--- Código: PHP ---# if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 10000)))# { # echo "La extensión o el tamaño de los archivos no es correcta Se permiten archivos .gif o .jpg se permiten archivos de 1000 Kb máximo."; 
es decir muestra ese mensaje que puse entonces no la sube a la imagen y esta en los parametros la foto por que es .jpg pesa 4,3kb

por eso no entiendo por que se mequeda en eso if y no lo pasa.

que podra ser?

este tema de upload la verdad que no se ve dificil pero me esta costando comprenderlo.

gracias driver espero tu respuesta

DriverOp:
Ya había visto que el código que usas para validar el tipo de archivo es muy inseguro, podemos hablar de ello luego.

Deberías dividir la validación del archivo en dos. Primero validar que sea un tipo válido y luego si el tamaño es el correcto. Sugiero este código:

[php:2zmspaf5] $thesefiles = Array("gif","jpg","jpeg"); function getFileExtension($str) {   $i = strrpos($str,".");   if (!$i) { return ""; }   $l = strlen($str) - $i;   $ext = substr($str,$i+1,$l);   return $ext;} // getFileExtension  $nombre_archivo=$_FILES['userfile']['name'];$temporal = $_FILES['userfile']['tmp_name'];$tamano_archivo=$_FILES['userfile']['size'];$msgerr = Array(); if (!in_array(getFileExtension($nombre_archivo),$thesefiles)) {  $msgerr[] = "El tipo de archivo es inválido.";}if ($tamano_archivo > 10000) {  $msgerr[] = "El archivo es demasiado grande.";}if (empty($msgerr)) { // no hay error  if (copy($temporal,"subidos/".$nombre_archivo)) {    $msgerr[] = "Archivo subido con éxito.";  else { $msgerr[] = "Error al copiar el archivo."; }}echo "<ul>";foreach($msgerr as $key => $value) {  echo "<li>".$value;}echo "</ul>"; [/php:2zmspaf5]

Aquí puedes saber qué condición es la que no se está compliendo.
"subidos" es el directorio donde quedarán los archivos subidos por los usuarios, cámbialo por lo que consideres necesario.

cesand:
Driver:

Te agradezco infinitamente el tiempo tu y la respuesta tan dedica..

no te voy a mentir no pude usar tu codigo qu seguramente esta bien, pero hace poco comence a estudiar php y por lo qu entiendo creaste una funcion propia no?

lamentablemente no entiendo como trabaja el codigo qu me hiciste y prefio tratar de comprender el mio que hasta vos mismo lo digiste es mas base mas simple digamos, qu decis hago bien?

algo que ayudarme sobre mi codigo u otra forma principiante de hacer lo que quiero que es subir un fotito y mostrarla tenes??


te agradesco nuevamente saludos.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa