[perl] abrir archivo remoto

Bolo Lacertus lacertus@servidor.unam.mx
Mon, 16 Nov 1998 14:16:35 -0600


Saludos!!!

La ultima vez que alguien preguntó al respecto no pudimos ayudar,
afortunadamente las cosas han cambiado :)

Heladia Salgado wrote:
> Tengo en mi forma html la siguente instruccion para poder leer un archivo
> remoto:

Bueno, hay aqui algo que debemos presisar, la mecanica de WWW es tal que
nunca vas a poder leer con tus CGI un archivo que se encuentre en la
máquina del cliente (eso sería un ENORME hueco de seguridad) mas bien,
lo que te permite hacer este tipo de campo "file", es enviar junto con
los demás parámetros de tu forma, un archivo completo desde la máquina
donde está tu cliente hasta el servidor (es una transferencia binaria
sin filtros, por lo que en archivos de texto es responsabilidad del CGI
el hacer las adaptaciones necesarias).

> File Upload:
> <INPUT TYPE="file" NAME="up_file" MAXLENGTH="0">
> Si navega bien a traves del directorio, y selecciona el archivo, pero
> posteriormente quiero abrir ese archivo en la maquina remota, que variable
> se utiliza para conocer la maquina remota y pueda accesar al archivo?

Ok, una vez que tu forma elige un archivo y lo envia a tu servidor para
ser procesado por un CGI (ya sea para almacenarlo o solo para revisarlo
y descartarlo después) todo se envía como si fuese parte de una forma
convencional (y si usas CGI.pm no necesitas preocuparte de mas) ai que:

- Para concoer de que máquina te fué enviada la información, al igual
que siempre, toma cualquiera de las variable de ambiente REMOTE_ADDR y
REMOTE_HOST (nunca he sabido cual es la diferencia, creo que la primera
siempre es numérica y la segunda puede ser un nombre si tu servidor está
configurado para hacer reverse lookups).

- Para leer el archivo
Ok, aqui es donde se pone interesante el asunto, no dejes de poner en tu
forma el método adecuado de codificación o no recivirás nada (lee y
relee la referencia de CGI.pm para ver cual metodo de codificación es el
correcto es el multipart/form data, pero si no lo escribes correctamente
no funciona el envio de archivos).
Suponiendo que tu forma este escrita de modo que efectivamente envien el
archivo a tu CGI vas a tener que emplear los métodos de CGI.pm para
manejar el campo tipo file.

Estoy viendo la respuesta de Victor Aguilar, y menciona bastante bien
como debe usarse, de modo que omito la descripción de las funciones.

De modo que:

- Verifique bien que este usando la forma correcta de codificación en su
forma
- Tenga a la mano la referencia de CGI.pm y lealo con cuidado en la
sección de recuperación campos tipo file.
- Cuando emplee los archivos en su CGi verifique:
	- El tipo de los archivos (y convertir los de texto)
	- Que efectivamente reciva algo (mas de 0 bytes de archivo)
	- Que las operaciones para grabar lo recivido a un archivo local se
realicen con éxito.

No olvide ponerle smileys a su código: Daniel Sol :) >;}
-- 
Bolo Lacertus: lacertus@servidor.dgsca.unam.mx			==~\___\
http://132.248.71.81/cgi-bin/lacertus/hola			 =__vvvv
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/GCS/GE/GED d?>d+ s:+ a-->- C++>+++$ US/UI++ P++++$ L+ E- W+++ N o?
K- 
w--- !O !M V-- PS++ PE-- Y+ PGP+ t+ 5? X- R* tv-- b++>+++ DI+++ D+ G+
e+>++ 
h* r++(*) y+ 
------END GEEK CODE BLOCK------
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : cancelacion perl