Question

Je suis en train d'utiliser AjaxUpload avec Python: http://valums.com/ajax-upload/

Je voudrais savoir comment accéder au fichier téléchargé avec Python. Sur le site web, il est dit:

* PHP: $_FILES['userfile']
* Rails: params[:userfile]

Quelle est la syntaxe pour Python?

Request.Params [ 'userfile'] ne semble pas fonctionner.

Merci d'avance! Voici mon code actuel (à l'aide PIL importé sous forme d'image)

im = Image.open(request.params['myFile'].file)
Était-ce utile?

La solution

django, vous pouvez utiliser:

request.FILES['file']

au lieu de:

request.POST['file']

Je ne savais pas comment faire ... peut-être dans pylones est le même concept ..

Autres conseils

import cgi

#This will give you the data of the file,
# but won't give you the filename, unfortunately.
# For that you have to do some other trick.
file_data = cgi.FieldStorage.getfirst('file')

#<IGNORE if you're not using mod_python>

#(If you're using mod_python you can also get the Request object
# by passing 'req' to the relevant function in 'index.py', like "def func(req):"
# Then you access it with req.form.getfirst('file') instead. NOTE that the
# first method will work even when using mod_python, but the first FieldStorage
# object called is the only one with relevant data, so if you pass 'req' to the
# function you have to use the method that uses 'req'.)

#</IGNORE>

#Then you can write it to a file like so...
file = open('example_filename.wtvr','w')#'w' is for 'write'
file.write(file_data)
file.close()

#Then access it like so...
file = open('example_filename.wtvr','r')#'r' is for 'read'

#And use file.read() or whatever else to do what you want.

Je travaille avec Pyramid, et je tentais de faire la même chose. Après un certain temps je suis venu avec cette solution.

from cStringIO import StringIO
from cgi import FieldStorage

fs = FieldStorage(fp=request['wsgi.input'], environ=request)
f = StringIO(fs.value)

im = Image.open(f)

Je ne suis pas sûr que ce soit le « bon », mais il semble fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top