您是否对烧瓶中的文件有base64编码的想法?
我尝试过...
import base64
@users_blueprint.route('/add-source', methods=['GET', 'POST'])
@ensure_authenticated
@user_authenticated
def add_user_resource():
file = request.files['file']
#file = request.files['file'].filename
with open(file, "rb") as imageFile:
str = base64.b64encode(imageFile.read())
print str
return str
我遇到错误 #FileNotFoundError:[错误2]没有这样的文件或目录:'Tulips.jpg'
有什么主意吗?预先谢谢你?
答案 0 :(得分:0)
当您打开具有相对文件路径的文件(即简单地传递Tulips.jpg
)时,将相对于当前工作目录来计算文件的路径。如果文件不存在,则会出现错误。在您的情况下进行调试的简便方法是,在应用启动时或使用os.getcwd()
打开文件之前立即打印当前工作目录,并检查文件是否实际位于/your/working/dir/Tulips.jpg
。
答案 1 :(得分:0)
无需致电open
。 Flask已经为您提供了可读的文件流。
还要注意,b64encode
返回bytes
而不是str
。
file = request.files['file']
rv = base64.b64encode(file.read()) # bytes
rv = rv.decode('ascii') # str
return rv
PS:选择变量名称时,请尽量避免使用str
之类的built-in identifiers。可以为您节省一些麻烦。