Foros del Web » Programación para mayores de 30 ;) » Programación General »

Urgente

Estas en el tema de Urgente en el foro de Programación General en Foros del Web. Tengo un formulario con un campo file, mi intencion es poder subir una imagen que el usuario meta en este campo, utilizando la libreria GD. ...
  #1 (permalink)  
Antiguo 04/05/2004, 02:06
 
Fecha de Ingreso: enero-2004
Ubicación: PAïS LLïONES
Mensajes: 162
Antigüedad: 20 años, 3 meses
Puntos: 3
Urgente

Tengo un formulario con un campo file, mi intencion es poder subir una imagen que el usuario meta en este campo, utilizando la libreria GD. pero nose porque no me coje la ruta que contiene el campo file:

$base contiene la ruta de la foto(c:\misdocumentos\..imagen.jpg


open (PNG,"$base");
$foto = newFromJpeg GD::Image(\*PNG);
close PNG;

esto no me funciona, que pasa?
  #2 (permalink)  
Antiguo 04/05/2004, 15:18
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Hola:

Tengo un tutorial en mi sitio de "Perl en Español" que te puede funcionar:

- Upload de archivos
http://perlenespanol.baboonsoftware....ut/000082.html

SALUDOS

-
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #3 (permalink)  
Antiguo 04/05/2004, 18:58
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola:

Quisiera que me ayuden, la verdad estoy recién comenzando en CGI. Intenté seguir tu tutorial pero se me ha acomplejado ya que no sé que campos tengo que cambiar. Uso Dattatec para referencias de donde está ubicado el perl...

Desde ya agradezco ayuda.
  #4 (permalink)  
Antiguo 04/05/2004, 19:46
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Hola:

No conozco el Datatec. Y pues el tutorial lo hice para que sea fácil copiar el código de HTML así como el código del CGI para poner a trabajar todo, nada mas que si necesitas de un poco de conocimiento perl así como HTML.

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #5 (permalink)  
Antiguo 04/05/2004, 20:42
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Pero si yo copié el código html y el cgi. El CGI lo subí en la carpeta cgi-bin di permisos 755 y el html lo subí en la carpeta en la que quiero que aparezca todo lo "subido a través del upload". También subí el cgi (visto y considerando el error) a la carpeta para subir y tampoco me subió...
Habría alguna forma que me funcione acá: http://sefweb.com.ar/...

Un saludo y gracias.

Última edición por SEF; 15/05/2004 a las 00:29
  #6 (permalink)  
Antiguo 05/05/2004, 08:55
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Hola:

Checa que la ruta en la variable "$dir" sea correcta, intenta ponerlo en:

Código:
$dir = ".";
Checa a ver si así te jala.

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #7 (permalink)  
Antiguo 15/05/2004, 00:10
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Ya me funcó, muchas gracias. Ahora me quedan algunas duditas:

A) ¿Tiene un límite de máximo peso? Si es así ¿Cómo lo quito? Si no es así ¿Cómo pongo el "máximo" en caso de que lo quiera así?

B) ¿Qué diferencia hay de subir un CGI a la carpeta cgi-bin o a un directorio cualquiera?

C) Me interesaría enlistar los archivos que "se suban en la carpeta", si hay algún sistema me interesaría conocerlo.

De nuevo gracias y perdón por las molestias.

Última edición por SEF; 15/05/2004 a las 00:31
  #8 (permalink)  
Antiguo 15/05/2004, 22:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Hola:

En cuanto a tus preguntas:

A. No hay limite de peso.

B. En realidad no hay diferencia, lo que pasa es que ciertos servidores estan configurados para que solo puedas ejecutar CGIs en el cgi-bin.

C. Puedes leer los archivos de un directorio de la siguiente manera:

Código:
#Cambia esta variable por el direcotorio que quieres leer
my $dir = "/directorio";

opendir (DIR, "$dir");
my @files = readdir(DIR);
closedir(DIR);

  foreach my $file(@files){
     next if $file =~ /^\.\.?$/;
     print "$file\n";
  }
SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #9 (permalink)  
Antiguo 16/05/2004, 10:48
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola, de nuevo gracias por las molestias.

A) Me quedó la segunda duda, ¿hay algún método para poner un límite sin que sea muy complicado?

B) Gracias esa duda la tenía hace tiempo.

C) La verdad no entiendo dónde debo ubicar ese código. A ver si me explico más detalladamente: Quisiera que al subir el archivo, en vezde que aparezca el texto de que "se subió correctamente", que se dirija a una página donde aparecen todos los archivos que se subieron en "x" directorio. Disculpa si no me supe explicar.

Gracias nuevamente.
  #10 (permalink)  
Antiguo 17/05/2004, 11:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Hola:

A. Para poner un limite de tamaño, todo lo que tienes que hacer es incluir el siguiente código:

Código:
 my $max_upload = "1000"; #Tamaño máximo en kbytes

  if ($ENV{'CONTENT_LENGTH'} > ($max_upload*1024)){
      print "Content-type: text/html\n\n";
      print "<h1>Archivo my grande</h1>";
      exit(0);
}
Pon el código al principio de la función que se llama recepcion_de_archivo, y recuerda modificar la variable $max_upload a los kbyte máximos que quieres.

C. En la parte donde pongo el comentario de -#TODO SALIO BIEN- y donde se depliega el mensaje final, pon el siguiente código:
Código:
opendir (DIR, "$dir");
my @files = readdir(DIR);
closedir(DIR);

print "Content-type: text/html\n\n";
print "<h1>El archivo fue recibido correctamente</h1>\n";
print "<b>Aquí hay una lista de archivos recibidos actualmente en este directorio:</b>\n";

print "<ul>\n";
  foreach my $file(sort @files){
     next if $file =~ /^\.\.?$/;
     print "<li><a href=\"$file\" target=\"_blank\">$file</a></li>\n";
  }
print "</ul>\n";
Si tienes algun problema, avísame.

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #11 (permalink)  
Antiguo 17/05/2004, 18:38
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
A) Gracias, me ha funcionado correctamente.

C) Me ha cargado todo en orden pero... la carpeta cgi-bin :D...
O sea yo tengo los archivos en la carpeta /uploads y el CGI en /cgi-bin... :p...

D) Me surgió un problema, intenté subir exactamente el mismo CGI y htm (no tiene nada http://www.sitio/cgi sino que es "cgi"), miren acá: http://www.retreparaciones.com.ar/uploads en teoría las carpetas son las mismas (le di el permiso al CGI como corresponde) pero No funca... hagan la prueba subiendo lo que quieran. De paso cuento que el servidor es el mismo, por lo que acepta Perl...

Muchas gracias por todo kidd.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:15.