flask 上传 png 格式图片 数据缺失!

2022-03-26 12:52:52 +08:00
 coolloves
通过 flask 上传图片到服务器,但是发现 图片上传后有数据缺失,好像是头部没了.上传代码基本就是 form 提交,然后 flask 获取后,保存.

flask 代码如下:

        f=request.files['myfile']
        if f:
            fname=secure_filename(f.filename).replace(' ','')
            f.save(os.path.join(file_dir, fname))
            
html 代码:

<form class="form-inline" role="form" method="post" action="/upload" enctype="multipart/form-data">
<div class="form-group">
    <label class="sr-only" for="inputfile">文件输入</label>
    <input type="file" class="form-control" id="File1" name="myfile"/>
  </div>
  <button id='upload' type="submit">提交</button>
</form>



经查看比对,在服务器上 file 文件查看,
# file 4.png 
4.png: data

正常的文件是有 img 信息的:
# file 4K.png  
4K.png: PNG image data, 300 x 146, 8-bit/color RGBA, non-interlaced


经过 vi 比对两个文件,发现是头部信息没有了,如图,左边是正常的图片,右边不正常,开头少了一部分
百思不得其解,不知道是哪里的问题

1819 次点击
所在节点    Python
3 条回复
cz5424
2022-03-26 15:53:00 +08:00
f.seek(0)试试
coolloves
2022-03-26 17:26:19 +08:00
@cz5424 没用啊,还是一样,真见鬼了
llsquaer
2022-03-28 22:59:28 +08:00
没遇到过, 要么就换个思路..base64 上传

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX