PyWebIO input之file_upload用法

1、需求

上传txt或者图片文件,收到后存在本地

2、上传文件

2.1 效果展示

在这里插入图片描述

2.2 代码实现

我上传的内容test.txt内容如下:

你好
测试同学

接收到文件,有5个属性:

  • ‘filename’: 文件名
  • ‘size’: 文件大小
  • ‘content’:文件二进制数据(bytes object)
  • ‘mime_type’: 文件的MIME类型
  • ‘last_modified’: 文件上次修改时间(时间戳)
from pywebio.input import file_upload
from pywebio.output import put_text

txtFile = file_upload("选择一个txt文件:", placeholder="选择文件")
put_text("上传成功")
print(f"txt file:{
      
      txtFile}")
# byte字符串
bytes_content = txtFile["content"]
print(f"bytes content:{
      
      bytes_content}")
# 方式1:byte转str
str_content = bytes_content.decode('utf-8')
print(f"str content:{
      
      str_content}")
# 方式2:byte转str
# str_content = str(bytes_content, 'utf-8')
with open("../b.txt", 'a', encoding='utf-8') as f:
    for line in str_content:
        f.write(line)
    f.close()

打印信息如下:

txt file:{'filename': 'test.txt', 'size': 20, 'mime_type': 'text/plain', 'last_modified': 1684918559.447, 'content': b'\xe4\xbd\xa0\xe5\xa5\xbd\r\n\xe6\xb5\x8b\xe8\xaf\x95\xe5\x90\x8c\xe5\xad\xa6'}
bytes content:b'\xe4\xbd\xa0\xe5\xa5\xbd\r\n\xe6\xb5\x8b\xe8\xaf\x95\xe5\x90\x8c\xe5\xad\xa6'
str content:你好
测试同学

Process finished with exit code 0

3、上传单张图片

3.1 效果展示

在这里插入图片描述

3.2 代码实现

from pywebio.input import file_upload
from pywebio.output import put_text

image = file_upload("上传一张图片", placeholder="上传图片")
put_text("上传成功")
open(image['filename'], 'wb').write(image['content'])

上传完成后,在该py文件所在目录下,可以看到上传的图片

4、上传多张图片

4.1 效果展示

在这里插入图片描述

4.2 代码实现

需要将multiple参数值设为True。且循环保存图片。

images = file_upload("上传图片(支持多张)", accept="image/*", placeholder="上传图片", multiple=True)
put_text("上传成功")
for image in images:
    open(image['filename'], 'wb').write(image['content'])

猜你喜欢

转载自blog.csdn.net/weixin_44691253/article/details/130851147