Python,Flask - 如何使用DHTML上传器加载文件

时间:2012-09-15 16:14:05

标签: javascript python flask dhtmlx

我正在使用dhtmlx上传程序上传文件。

这是我的JS代码

{type: "label",label: ""},
{type: "upload",name: "creatives",inputWidth: 330,
 url: "/upload_creative",
_swfLogs: "enabled",
 swfPath: "static/js/dhtmlxForm/codebase/ext/uploader.swf",
 swfUrl: "/upload_creative"
},  

这是我的python代码,它将接收文件。

@app.route('/upload_creative', methods=["GET", "POST"])
@login_required
def upload_creative():
    if request.method == "POST":
        print 'request.form', request.form

所以...来自python ....如何获取文件名,以便保存到磁盘?我期待图像文件。

当我上传时,我会在日志中看到这一点。

request.form ImmutableMultiDict([])
127.0.0.1 - - [15/Sep/2012 23:59:56] "POST /upload_creative?mode=html5&1347724796791 HTTP/1.1" 200 -

2 个答案:

答案 0 :(得分:2)

from flask import request
...

imgfile = request.files['file-id']
imgname = imgfile.filename

答案 1 :(得分:0)

您需要使用request.files代替request.form

request.files是一个类似dict的对象(确切地说ImmutableMultiDict,就像request.form一样)包含所有上传的文件。

每个文件都包含在werkzeug FileStorage中;你可以.save()把它变成一个真实的文件(它可能只是在内存中,直到你这样做)。

有关详细信息,请参阅flask docsFlask-Uploads扩展程序。