• Jueves 28 de Marzo de 2024, 17:53

Autor Tema:  subir archivos  (Leído 2921 veces)

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
subir archivos
« en: Domingo 24 de Enero de 2010, 00:24 »
0
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
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  3. <title>Documento sin título</title>
  4. </head>
  5.  
  6. <body>
  7. <h1>Subir nuevo archivo</h1>
  8. <form enctype="multipart/form-data" action="subir.php" method="post">
  9. <input type="hidden" name="MAX_FILE_SIZE" value="1000">
  10. Upload this file <input name="userfile" type="file">
  11. <input type="submit" value="Send File">
  12. </form>
  13.  
  14. </body>
  15. </html>
  16.  
  17.  

aca el qu lo procesa:

Código: PHP
  1. <?php //tomo el valor de un elemento de tipo texto del formulario
  2. $cadenatexto=$_POST['cadenatexto'];
  3. echo "Escribió en el campo de texto:".$cadenatexto."<br><br>";
  4. $nombre_archivo=$_FILES['userfile']['name'];
  5. $tipo_archivo=$_FILES['userfile']['type'];
  6. $tamano_archivo=$_FILES['userfile']['size'];
  7. //compruebo si las características del archivo son las que deseo
  8. if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 10000)))
  9. { 
  10. 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.";
  11. } elseif (move_uploaded_file($_FILES['userfile']['tmp_name'],$nombre_archivo)) {
  12. echo "El archivo ha sido cargado correctamente.";
  13. } else {
  14. echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  15. }
  16. ?> 
  17.  


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

saludos

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: subir archivos
« Respuesta #1 en: Domingo 24 de Enero de 2010, 05:44 »
0
¿Aparece algún mensaje de error o qué es lo que pasa?

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: subir archivos
« Respuesta #2 en: Domingo 24 de Enero de 2010, 08:21 »
0
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
  1. # if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 10000)))
  2. # {
  3. # 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.";
  4.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: subir archivos
« Respuesta #3 en: Lunes 25 de Enero de 2010, 02:15 »
0
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]
  1.  
  2. $thesefiles = Array("gif","jpg","jpeg");
  3.  
  4. function getFileExtension($str) {
  5.    $i = strrpos($str,".");
  6.    if (!$i) { return ""; }
  7.    $l = strlen($str) - $i;
  8.    $ext = substr($str,$i+1,$l);
  9.    return $ext;
  10. } // getFileExtension
  11.  
  12.  
  13. $nombre_archivo=$_FILES['userfile']['name'];
  14. $temporal = $_FILES['userfile']['tmp_name'];
  15. $tamano_archivo=$_FILES['userfile']['size'];
  16. $msgerr = Array();
  17.  
  18. if (!in_array(getFileExtension($nombre_archivo),$thesefiles)) {
  19.   $msgerr[] = "El tipo de archivo es inválido.";
  20. }
  21. if ($tamano_archivo > 10000) {
  22.   $msgerr[] = "El archivo es demasiado grande.";
  23. }
  24. if (empty($msgerr)) { // no hay error
  25.   if (copy($temporal,"subidos/".$nombre_archivo)) {
  26.     $msgerr[] = "Archivo subido con éxito.";
  27.   else { $msgerr[] = "Error al copiar el archivo."; }
  28. }
  29. echo "<ul>";
  30. foreach($msgerr as $key => $value) {
  31.   echo "<li>".$value;
  32. }
  33. echo "</ul>";
  34.  
[/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

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: subir archivos
« Respuesta #4 en: Martes 26 de Enero de 2010, 03:23 »
0
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.

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: subir archivos
« Respuesta #5 en: Martes 26 de Enero de 2010, 03:36 »
0
Cita de: "cesand"
Driver:
 Ah, ah... DriverOp si no te importa.

Cita de: "cesand"
Te agradezco infinitamente el tiempo tu y la respuesta tan dedica..
De nada.

Cita de: "cesand"
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?
 Gracias por tu sinceridad. La verdad es que no sabía tu nivel de conocimientos de PHP.

Cita de: "cesand"
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?
Por supuesto que haces bien.

Cita de: "cesand"
algo que ayudarme sobre mi codigo u otra forma principiante de hacer lo que quiero que es subir un fotito y mostrarla tenes??
El código que he puesto sirve para eso.

Primero que nada, te recomiendo que apuntes esta dirección: http://es.php.net/ es el sitio oficial de PHP, allí podrás buscar con el buscador cualquier función de PHP. Si no sabes qué hace o no recuerdas la sintaxis de alguna función de PHP búscala allí para aprender más.

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: subir archivos
« Respuesta #6 en: Sábado 30 de Enero de 2010, 23:56 »
0
Hola Gente..

que problemas me esta trayendo poder subir un archivo no logro hacerlo..

aunque sea de cualquier forma quiero hacerlo.. por mas qu no tenga nada de seguridad, mas qu nada para entender qu es lo basico basico..

muestro los script que calcule que ivan a funcionas pero ni siquiera estos me funcionaron..

Código: PHP
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>examinar</title>
  5. </head>
  6.  
  7. <body>
  8. <form action="levantar.php" method="post" enctype="multipart/form-data">
  9. <input type="file" name="userfile">
  10. <input type="submit" name="cargar" value="subir">
  11. </form>
  12. </body>
  13. </html>
  14.  

Código: PHP
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7. <body>
  8. <?php
  9. if (isset($_POST['cargar']))
  10. {
  11.     $nombre = $_FILES['userfile']['name'];
  12.     if (move_uploaded_file($_FILES['userfile']['tmp_name'], $nombre))
  13.     {
  14.     echo "subio";
  15.     } else {
  16.     echo "no subio";
  17.     }
  18. }
  19. ?>
  20. </body>
  21. </html>
  22.  
  23.  

saludos gente gracias desde ya.

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: subir archivos
« Respuesta #7 en: Domingo 31 de Enero de 2010, 00:18 »
0
Pregunto y me respondo yo mismo jaj..
disculpen los escrip andan bien suben los archivos.. no me di cuenta y tenia un error de ortografia en un nombre y no guarde los cambios x eso no me subia el archivo.. :beer:

ahora esta el siguiente paso.. como hago para mostrar los archivos que subi? subi fotitos chiquitas.. como hago een base a ese codigo para mostrar la foto en el navegador?

suerte amigos