0

我正在尝试将精细的上传器连接到 Flask 端点。

端点看起来像:

@app.route('/', methods=['GET', 'POST'])
def a_function():
    if request.method == 'POST':
         file = request.files['file']
         {{ do stuff }}
         return render_template('index.html', {{ variables }} )
    return render_template('index.html' )

我正在尝试替换标准表格:

<form action="" method=post enctype=multipart/form-data>
    <input type=file name=file>
    <input type=submit value=Upload>
</form>

使用精细上传器

<div class="centered_div">
   <div id="manual-fine-uploader"> </div>
   <div id="triggerUpload" class="btn btn-primary" style="margin-top: 10px;">
       <i class="icon-upload icon-white"></i> Upload now>
   </div>
</div>

...

$(document).ready(function() {
    var manualuploader = $('#manual-fine-uploader').fineUploader({
        request: {
            endpoint: '/'
        },
        autoUpload: false,
        text: {
            uploadButton: '<i class="icon-plus icon-white"></i> Select Files'
        },
        failedUploadTextDisplay: {
            mode: 'custom',
            maxChars: 40,
            responseProperty: 'error',
            enableTooltip: true
        }
    });


    $('#triggerUpload').click(function() {
        manualuploader.fineUploader('uploadStoredFiles');
    });
});

但是我在控制台中遇到了一些 js 错误,并且端点似乎没有request正确管理:

POST http://{{ localhost }}:5000/ 400 (BAD REQUEST) jquery.fineuploader-3.4.1.js:3903 [FineUploader] 尝试解析 xhr 响应文本时出错 (SyntaxError: Unexpected token <) jquery.fineuploader -3.4.1.js:155 [FineUploader] 'error' 不是服务器响应的有效属性。

和应用程序错误了Upload failed

我猜测当我endpoint: '/'在线提交请求时会出现问题,并且我真的希望我不必完全重写{{ do stuff }}我的端点部分。

4

1 回答 1

2

好吧,首先,您为端点列出的代码永远不会在 Fine Uploader 中按原样工作。您的端点必须返回有效的 JSON 响应。有关详细信息 ,请参阅服务器端示例和相关自述文件。

其次,就您的路由而言,似乎确实有些问题。您的服务器以 400 响应。您需要检查服务器端代码以确定请求被拒绝的位置和原因。一个好的第一步是检查 Chrome 网络选项卡中的请求,记下端点,然后检查服务器端代码中的适当位置。

于 2013-04-13T17:48:01.037 回答