如何使用flask生成下载url而不在服务器端存储?

2024-04-29 11:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我想用Flask做一个简单的web应用。我的应用程序将收到用户上传的图片,并返回一个包含一些编辑过的图片的zip文件(为该图片添加一些有趣的表情或类似的东西)。我的拉链是用Python设计的。我的问题是:在我完全生成zip之后,如何为它生成下载url?我认为在服务器端存储zip是不好的(只是我的客观想法),因为我的应用程序是公开的,我的意思是用户不必登录或注册,只需上传文件并接收zip。你知道吗

我尝试过搜索,有人建议使用base64,有没有比这更好的方法?你知道吗


Tags: 文件用户web应用程序url编辑flask服务器端
1条回答
网友
1楼 · 发布于 2024-04-29 11:21:23

可以在渲染时直接创建zip文件。但请求时间将受到影响。你知道吗

也许可以使用一种中间件,但我不能告诉你。你知道吗

也许您返回一个包含所请求映像地址的JWT令牌。根据请求,将创建zip存档。当然,也可以将图像地址作为POST或GET参数传递。你知道吗

@app.route('/get-image')
def get_image():
  image_file = request.files['image_addr']

  # load and process image here
  image_data = ...

  # generate zip file 
  mem = io.BytesIO()
  mem.write(gzip.compress(image_data))
  mem.seek(0)
  return send_file(mem, as_attachment=True,
                     attachment_filename='archive.gzip',
                     mimetype='application/gzip')

这就是你要找的吗?你知道吗

相关问题 更多 >