阿小信大人的头像
Life is short (You need Python) Bruce Eckel

Flask Ajax上传文件2014-11-20 17:26

需求是在上传文件前,当选择了文件后要在页面上显示选择的文件的文本行数。

网页表单如下:

<form role="form" method="POST" enctype=multipart/form-data id='form1'>
    ...
    <label for="question_file">题目文件</label><small class="pull-right" id="length_info"></small>
    <input class="form-control input-sm" id="question_file" name="question_file" required type="file">
    ...
    <button type="submit" class="btn btn-default" id='submit1'>提交</button>
</form>

js:

<script>
$('#question_file').change(function(){
    var form_data = new FormData($('#form1')[0]);
    //$('#form1')是个list,所以要得到form必须用下标取
    $.ajax({
        url: '/get_file_len',
        type: 'POST',
        data: form_data,
        contentType: false,
        processData: false,
        success: function(length){
            $('#length_info').html('该文件共'+ length +'行')
        },
    });
})
</script>

Flask view:

@app.route('/get_file_len', methods=['POST'])
def get_file_len():
    try:
        content = request.files['question_file'].stream.read()
        length = str(len(content.decode('utf-8').splitlines()))
        return length
    except Exception as e:
        return str(e)

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#   #jquery #flask
分享到:
阅读[2081] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

发表评论