防止用户将BMP、TIFF等图像上载到Plone中的ImageField
用户这样做是因为他们可以 但是,图像自动调整大小等故障 这使我成为一个悲伤的男孩 如何将图像上传限制为GIF、PNG和JPEG站点范围防止用户将BMP、TIFF等图像上载到Plone中的ImageField,plone,archetypes,dexterity,Plone,Archetypes,Dexterity,用户这样做是因为他们可以 但是,图像自动调整大小等故障 这使我成为一个悲伤的男孩 如何将图像上传限制为GIF、PNG和JPEG站点范围 原型 灵巧 使用原型,您可以覆盖图像内容类或使用以下模式创建自己的自定义图像内容类 你只需要加一行就行了 allowable_content_types = ('image/gif', 'image/jpeg', 'image/png'), 到您的模式 即 我可能会使用模式扩展程序来扩展Image类,覆盖该特定字段 这些天我遇到了类似的问题,并像这样解决了这
- 原型
- 灵巧
allowable_content_types = ('image/gif', 'image/jpeg', 'image/png'),
到您的模式
即
我可能会使用模式扩展程序来扩展Image类,覆盖该特定字段
这些天我遇到了类似的问题,并像这样解决了这些问题:
- 添加一个自定义小部件,向文件输入添加
属性accept
- 设置
,这样用户在上传未经支持的图像类型时至少不会出现站点错误field.燕子ResizeExceptions=True
- 说明在描述中工作的mimetype
atapi.ImageField('image1',
TownResizeExceptions=True,
widget=atapi.ImageWidget(
标签=u(图像1”),
description=u(列表中使用的图像(支持JPEG、PNG和GIF)”,
显示内容类型=假,
accept='image/*',
宏='mywidgets/myimage',
),
),
请注意,firefox11忽略了accept=“image/jpeg,image/gif”
虽然它应该根据
mywidgets/myimage是archetypes/skins/widgets/image.pt的自定义版本,它使用archetypes/skins/widgets/file.pt的自定义版本
...
...
mywidgets/myfile.pt只是定义了这个宏:
AT使用验证后事件的侧向限制:
检查允许任何类型的图像,并使用转换来进行imagemagick,将BMP转换为PNG,不是更有用吗?我有点惊讶这不是自动的。AT的横向限制:检查抱歉,必须将此答案取消标记为正确。由于某些原因,正在忽略允许的内容类型。普隆3.3。这也是ATImage的默认值。只要看到它是stackoverflow链接。。。如果问题是完全重复的,则应将其标记为(是吗?)否则,答案可能不适合此问题:-)答案适合原型部分,但不适合灵巧性。
MyImageSchema = schemata.ATContentTypeSchema.copy() + atapi.Schema((
ImageField('image',
required = False,
allowable_content_types = ('image/gif', 'image/jpeg', 'image/png'),
storage=AttributeStorage(),
sizes= {'large' : (768, 768),
'preview' : (400, 400),
'mini' : (200, 200),
'thumb' : (128, 128),
'tile' : (64, 64),
'icon' : (32, 32),
'listing' : (16, 16),
},
widget = ImageWidget(
label=_(u"Image"),
show_content_type=False,
),
),