Input file

Gabriel Genellina gagsl-py2 en yahoo.com.ar
Jue Ago 2 05:14:52 CEST 2007


En Wed, 01 Aug 2007 18:38:20 -0300, <esteban en ffyb.uba.ar> escribió:

> Estoy haciendo un aplicacion via web ,con html y python. Soy nuevo , y se
> me presenta el siguiente problema, como no se mucho de mover,copiar ,
> subir archivos es python.

No aclaraste que framework estas usando - apache+cgi? apache+mod_python?  
turbogears? django?...

> Tengo que darle al usuario la posibilidad de subir una foto , yo hice un
> input file nme file con el encoding=multipart/form-data y metodo post, el
> problema que se me presenta es que cuando tengo que tomar el
> formulario['file'].value me tira en explorer todo el path , cuando

Ese en realidad es un problema del explorer - deberia enviar solamente el  
NOMBRE del archivo subido, no el path completo. Que al momento de  
procesarlo en el servidor, es inutil, porqeu se refiere a directorios en  
la maquina del cliente.
> intento
> copiarlo con shutil me da error no encuentra el archivo a copias. la
> pregunta es input file  como actua con python, ese archivo esta en donde
> alojado temporalmente , que libreria tengo que usar, lo guarda algun
> objeto del tipo uploadFile. como lo rescato para luego copiarlo y puedo
> usar el shutil .copy o debo usar otro modulo para subirla.

Suponiendo que estas usando el modulo cgi, el atributo file es un  
pseudo-archivo que se puede usar para leer el contenido. No es un nombre  
de archivo, ni esta guardado en disco ni tiene nombre siquiera temporario:

f = form['file'].file
if f:
   # procesarlo como si f fuese un archivo ya abierto para lectura

Se podria usar shutil, pero sólo funciones que reciben un file como  
argumento, no las que reciben un nombre. Parece ser que sólo se puede usar  
copyfileobj(f, open('destino.xxx', 'wb'))

-- 
Gabriel Genellina

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es