python - 在 python Flask 中上传后文件显示零 kb

标签 python file-upload flask

我正在Python中构建rest api。
我正在尝试在 python 中上传视频文件并获取它的缩略图。
但当文件上传时,文件显示大小为零 kb。

下面是我的代码的快照:

import json

from flask import Flask, make_response, request, abort, logging, Response
import os
from werkzeug.utils import secure_filename
#from flask.ext.uploads import delete, init, save, Upload

app = Flask("main")

app.config['ALLOWED_EXTENSIONS'] = set(['mp4','jpg'])
app.config['UPLOAD_FOLDER'] = 'uploads/'


@app.route('/import', methods=['POST'])
def import_objects():
    file = request.files['file']
    # logging.debug('uploading file ' + file.filename)
    if file and allowed_file(file.filename):
        # extract content
        content = file.read()
        filename = secure_filename(file.filename)
        print(filename)
        print(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        #save(request.files['file'])
        #print content
        print('ffmpeg -i ./'+os.path.join(app.config['UPLOAD_FOLDER'], filename)+' -ss 00:00:10 -vframes 1 -f image2 ' + os.path.join(app.config['UPLOAD_FOLDER'],'thumb1.jpg'))
        os.system('ffmpeg -i ./'+os.path.join(app.config['UPLOAD_FOLDER'], filename)+' -ss 00:00:10 -vframes 1 -f image2 ' + os.path.join(app.config['UPLOAD_FOLDER'],'thumb1.jpg'))

        jsonResponse = json.dumps({'file_content': content})
        response = Response(jsonResponse, mimetype='application/json')
        return "sucess"
    else:
        abort(make_response("File extension not acceptable", 400))


def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']


app.run("0.0.0.0", 8080, True)

hear 是我的 html 文件的代码片段。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form method="post" action="http://0.0.0.0:8080/import" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit">
    </form>
</body>

</html>

最佳答案

我怀疑你的content = file.read()搞砸了。删除该行,它应该可以工作。保存文件之前不需要读取该文件。保存即可。

关于python - 在 python Flask 中上传后文件显示零 kb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396697/

相关文章:

ios 使用 HTTP POST 上传图像和文本

flask - 将 Swagger 与 Flask 一起使用

python - Docker 错误 2002 SQLAlchemy

python - 在 Flask 应用程序中使用 uwsgi 部署时,keras 预测会卡住

python - 增加音频分类中的val_acc

python - Python中导入不同目录下的文件

python - 减少 python 中 sqlite3 execute/fetchone 的时间

python - 如何在 reduce() 中引用整个数组?

c# - 如何使用ajaxfileupload上传多个文件并将它们插入数据库

ajax - Jasny bootstrap 文件上传图像预览错误