On 09/17/2013 07:23 AM, Horacio wrote:
Holas... Por medio del siguiente código html quiero enviar un archivo
ascii que es elegido por el usuario, para para que sea procesado por
una cgi escrita en python...

<form action="/cgi-bin/procesar.cgi" method="post"
enctype="multipart/from-data">
selecione archivo a analizar:
<input type="file" name="datos">
</form>

entonces acá la pregunta... en el archivo "procesar.cgi" como
decodifico los datos luego de hacer...

import cgi
...
form=cgi.FieldStorage()
...

form["datos"] que contiene? como extraigo el ascii del metodo post? o
si alguien me indica como solucionar esto que debe ser algo comun,
pero que desconozco como buscar para reloverlo, ejemplos de codigo son
bienvenidos...

Saludos...
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Con el atributo file obtienes un objeto tipo file de Python, el cual puedes leer. Por ejemplo:

finp = form["datos"].file
while 1:
      chunk = finp.read(blksize)
      if not chunk: break
      fout.write(chunk)

Donde fout es donde vas a copiar la información del archivo origen y es el tamaño del buffer en el que quieres leer. (Otro atributo, form["datos"].filename, te da el nombre del
archivo).

Al recibirlo y almacenarlo, hay que tomar en cuenta si es binario o no, según la plataforma, que los archivos de Windows pueden o no traer \ en vez de / y si en un sitio web, los permisos para que
pueda el script crear en algún lado el archivo o una base de datos, etc.

Gerardo





_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a