首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错误-在呈现时捕获IOError :数据不足

错误-在呈现时捕获IOError :数据不足
EN

Stack Overflow用户
提问于 2012-05-14 04:23:14
回答 1查看 2.1K关注 0票数 2

我已经创建了一个网站,正在使用sorl-缩略图调整大小的图像上传。大多数图像都在调整大小,没有任何问题,但对于少数人来说,会出现以下错误:

代码语言:javascript
运行
AI代码解释
复制
Caught IOError while rendering: not enough data
Request Method: GET
Request URL:    http://localhost:8000/user/nash22/photographs/
Django Version: 1.3.1
Exception Type: TemplateSyntaxError
Exception Value:    
Caught IOError while rendering: not enough data
Exception Location: /usr/local/lib/python2.7/site-packages/PIL/TiffImagePlugin.py in load, line 382
Python Executable:  /usr/local/bin/python
Python Version: 2.7.1

我在谷歌上搜索,但没有找到任何相关的答案。有谁能帮我一下发生了什么事,我怎样才能解决它?谢谢。

编辑

完全回溯

跟踪(最近一次调用):

文件"/lib/python2.7/django/core/handlers/base.py",第111行,在get_response响应=回调(请求、*callback_args、**callback_kwargs)中

文件"/home/swaroop/project/apps/photography/views.py",第702行,showPhoto context_instance=RequestContext(请求))

文件"/lib/python2.7/django/shortcuts/init.py",第20行,在render_to_response返回HttpResponse(loader.render_to_string(*args,**kwargs),**httpresponse_kwargs)中

render_to_string返回t.render(context_instance)中的文件"/lib/python2.7/django/template/loader.py",第188行

文件"/lib/python2.7/django/template/base.py",第123行,在呈现返回self._render(上下文)

_render返回self.nodelist.render(上下文)中的文件"/lib/python2.7/django/template/base.py",第117行

文件"/lib/python2.7/django/template/base.py",第744行,在呈现bits.append(self.render_node(节点,上下文))中

render_node返回node.render(上下文)中的文件"/lib/python2.7/django/template/base.py",第757行

文件"/lib/python2.7/django/template/loader_tags.py",第127行,在呈现返回compiled_parent._render(上下文)中

_render返回self.nodelist.render(上下文)中的文件"/lib/python2.7/django/template/base.py",第117行

文件"/lib/python2.7/django/template/base.py",第744行,在呈现bits.append(self.render_node(节点,上下文))中

render_node返回node.render(上下文)中的文件"/lib/python2.7/django/template/base.py",第757行

文件"/lib/python2.7/django/template/loader_tags.py",第64行,在呈现结果=block.nodelist.render(上下文)中

文件"/lib/python2.7/django/template/base.py",第744行,在呈现bits.append(self.render_node(节点,上下文))中

render_node返回node.render(上下文)中的文件"/lib/python2.7/django/template/base.py",第757行

文件"/lib/python2.7/sorl/thumbnail/templatetags/thumbnail.py",第45行,在呈现返回self._render(上下文)中

文件"/lib/python2.7/sorl/thumbnail/templatetags/thumbnail.py",第97行,在呈现文件、几何图形、**选项中

文件“/lib/python2.7/sorl/缩略图/base.py”,第61行,get_thumbnail缩略图)

文件“/lib/python2.7/sorl/缩略图/base.py”,第86行,在_create_thumbnail image = default.engine.create(source_image,几何学,选项)中

文件"/lib/python2.7/sorl/thumbnail/engines/base.py",第15行,在create =self.orientation(图像、几何图形、选项)中

文件"/lib/python2.7/sorl/thumbnail/engines/base.py",第26行,在方向返回self._orientation(图像)

文件"/lib/python2.7/sorl/thumbnail/engines/pil_engine.py",第29行,在_orientation exif = image._getexif()中

文件"/usr/local/lib/python2.7/site-packages/PIL/JpegImagePlugin.py",第381行,在_getexif info.load(文件)中

文件"/usr/local/lib/python2.7/site-packages/PIL/TiffImagePlugin.py",第382行,在load IOError中,“数据不够”

IOError:数据不足

EN

回答 1

Stack Overflow用户

发布于 2012-05-14 04:41:50

更新

image._getexif被认为是高度实验性的。参考sorl-thumbnailissue #98,您可以将代码更新为

代码语言:javascript
运行
AI代码解释
复制
def _orientation(self, image):
    try:
        exif = image._getexif()
    except (AttributeError, IOError):
        exif = None

这是由于PIL试图加载损坏或可能不支持的TIFF文件造成的。

通常,当您使用forms.ImageField时,Django会检查上传图像的正确性。

因此,你需要:

  • 确保使用forms.ImageField ( models.ImageField的默认设置)在视图中处理w/上传,
  • 检查上传的图像

从PIL导入图像Image.open(path).load()

  • use工具包,该工具包处理TIFF打开图像,如果可以打开,则将其保存到Jpeg或Png,并更新模型实例的字段以指向新文件.

此外,您还可以限制用户上传普通格式,如jpeg/png/gif,而不是TIFF。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10583265

复制
相关文章
Python 有可能删除 GIL 吗?
我们知道,在 CPython 中,有一个全局解释器锁,英文叫 global interpreter lock,简称 GIL,是一个互斥锁,用来保护 Python 世界里的对象,防止同一时刻多个线程执行 Python 的字节码,从而确保线程安全,这导致了 Python 的线程无法利用多核 CPU 的优势,因此有人说 Python 的多线程是伪多线程,性能不高,那么 Python 将来有可能去除 GIL 吗?
somenzz
2021/03/10
2.8K0
MySQL数据库的创建(表的创建,列,表的增删改,深入浅出)
存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。
一个风轻云淡
2022/11/13
4.3K0
MySQL数据库的创建(表的创建,列,表的增删改,深入浅出)
第42期:MySQL 是否有必要多列分区
之前的篇章我们讨论的都是基于单列的分区表,那有无必要建立基于多列的分区表?这种分区表数据分布是否均匀?有无特殊的应用场景?有无特殊的优化策略?本篇基于这些问题来进行重点解读。
爱可生开源社区
2022/06/29
1.8K0
直播动不动就几个亿销售额,数据是真的吗?是否有造假的可能?
任何新生的事物在到来之前总会引起争议这也是铁的事实,网络直播最早传播是在色情网站使用的比较多,随着移动互联网的快速发展手机用户大量增多,特别是粉丝经济的快速发展,特别是在电商领域发展速度非常的快速,发展历程已经从传统的电商过度到了社交电商,社交电商主要以拼多多为主要代表,现在随着短视频的发展又带动了直播电商的快速发展,由于疫情的影响很多商品销售都受到了影响,现在不仅仅是自媒体大咖在网络上直播售卖产品,很多科技大咖甚至很多明星都加入到了直播电商的行列来。
程序员互动联盟
2020/07/02
1.8K0
直播动不动就几个亿销售额,数据是真的吗?是否有造假的可能?
HBase 根据表名与列信息与配置信息创建表
private static Configuration configuration=null; static{ configuration= HBaseConfigurati
爱明依
2019/03/12
9340
面试官:你了解Axios的原理吗?有看过它的源码吗?
实现axios.interceptors.response.use和axios.interceptors.request.use
@超人
2021/02/26
3.2K0
面试官:你了解Axios的原理吗?有看过它的源码吗?
多张excel表做连接,就比如1表有A,B,C列,2表有A,B,D列,我想把A,B,C,D合到一张表
前几天在Python铂金群有个叫【水方人子】的粉丝问了一个关于excel处理的问题,这里拿出来给大家分享下,一起学习。
前端皮皮
2022/08/17
3680
多张excel表做连接,就比如1表有A,B,C列,2表有A,B,D列,我想把A,B,C,D合到一张表
如何使用python连接MySQL表的列值?
MySQL 是一个开源关系数据库管理系统,广泛用于存储、管理和组织数据。使用 MySQL 表时,通常需要将多个列值组合成一个字符串以进行报告和分析。Python是一种高级编程语言,提供了多个库,可以连接到MySQL数据库和执行SQL查询。
很酷的站长
2023/08/11
3980
如何使用python连接MySQL表的列值?
【MySQL】分区字段列是否有必要再单独建索引
对于分区字段必须是主键的一部分,那么建了复合主键之后,是否需要对分许字段再单独添加一个索引呢?有没有效果?下面来验证一下
用户5522200
2019/06/02
2.6K0
Excel里的PP可以按列排序,但你知道它的缺陷吗?
在我的文章、书或视频中,均介绍过Excel Power Pivot中的按列排序问题,通过按列排序,可以实现一列数据参照另一列的顺序进行排序,具体可以参考文章《PP-入门前奏:传统透视表无法完成的简单的排序问题》。
大海Power
2021/08/31
1.3K0
POSTGRESQL 创建一个表到底有什么说的? 可说的挺多的
创建一张表,到底有什么说的, 下面是POSTGRESQL 创建数据表的官方文档的内容截图. 那我们就往下看,到底我们可以说点什么
AustinDatabases
2021/07/15
7670
POSTGRESQL 创建一个表到底有什么说的?  可说的挺多的
非分区表是否可以创建分区索引?
有同事问一个问题, 一张非分区表,是否可以创建分区索引? 答案是可以,但分区索引的类型有限制。 MOS这篇文章给出了答案,以及一些例子,What Is The Global Partitioned I
bisal
2019/01/29
1.7K0
使用EXCLE表格,有相同列,取某一列的值
如图,我有两列MAC地址表,然后需要把F列的值取值到D列,可以使用公式:=VLOOKUP(A1,$E$1:$F$44,2,0)进行处理数据。A1代表以哪一列为基础取值参考,$E$1:$F$44代表查找对比范围。
Tacc
2022/01/11
4.4K0
使用EXCLE表格,有相同列,取某一列的值
(a ==1 && a== 2 && a==3) 有可能是 true 吗?
大部分解决方法都是使用toString或者valueOf实现的,主要利用:运算数两边的类型不同时,会进行隐式转换.
用户9914333
2022/07/21
3110
(a ==1 && a== 2 && a==3) 有可能是 true 吗?
国产操作系统有实现弯道超车的可能吗?
国产操作系统采取了成熟的开源操作系统Linux的技术路线,同时也投入了大量研发,从性能上已经较好的实现了追赶,基本达到了好用阶段。
海岛船长加西亚
2022/09/08
1.1K0
使用SQL语句创建表_用sql语句创建员工表
create table 表名 (列1 数据类型 1,列2 数据类型) tablespace 表空间
全栈程序员站长
2022/11/19
4.2K0
使用SQL语句创建表_用sql语句创建员工表
Excel与pandas:使用applymap()创建复杂的计算列
我们之前讨论了如何在pandas中创建计算列,并讲解了一些简单的示例。通过将表达式赋值给一个新列(例如df['new column']=expression),可以在大多数情况下轻松创建计算列。然而,有时我们需要创建相当复杂的计算列,这就是本文要讲解的内容。
fanjy
2022/11/16
4K0
Excel与pandas:使用applymap()创建复杂的计算列
面试突击59:一个表中可以有多个自增列吗?
自增列可使用 auto_increment 来实现,当一个列被标识为 auto_increment 之后,在添加时如果不给此列设置任何值,或给此列设置 NULL 值时,那么它会使用自增的规则来填充此列。
磊哥
2022/06/30
1.9K0
面试突击59:一个表中可以有多个自增列吗?
Python使用SQList判断表是否存
SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tableName';
py3study
2020/01/09
6890
点击加载更多

相似问题

是否有可能修改现有的模板而不是替换它?

11

创建表时,是否可以使用现有表的列类型?

30

可能有一个有可变列的表吗?

33

1列引用,多个表,有可能吗?

16

使用jquery表排序插件--有可能拥有静态列吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文