在 Plone 上使用 Dexterity 按文件类型或 mimetype 限制上传

2024-05-26

我有一个灵活构建的自定义内容类型。在架构中(架构如下所列),我使用 'plone.namedfile.field.NamedFile' 用于附件/上传。

我想限制上传,以便只有 mp3 文件可以附加到我的内容类型。实现这一目标的最佳方法是什么?

这是我的内容类型的完整架构/模型:

<model xmlns="http://namespaces.plone.org/supermodel/schema">
<schema>
<field name="date" type="zope.schema.Date">
<description />
<title>Date</title>
</field>
<field name="speaker" type="zope.schema.TextLine">
<description />
<title>Speaker</title>
</field>
<field name="service" type="zope.schema.Choice">
<description />
<title>Service</title>
<values>
<element>1st Service</element>
<element>2nd Service</element>
</values>
</field>
<field name="audio_file" type="plone.namedfile.field.NamedFile">
<description />
<title>Audio File</title>
</field>
</schema>
</model>

我将从这里开始我的搜索:http://plone.org/products/dexterity/documentation/manual/developer-manual/reference/default-value-validator-adaptors http://plone.org/products/dexterity/documentation/manual/developer-manual/reference/default-value-validator-adaptors


我决定使用 javascript 进行第一行验证。 我的解决方案基于以下位置找到的信息 通过扩展名限制可选择的文件 https://stackoverflow.com/questions/5796537/input-type-file-limit-selectable-files-by-extensions

根据建议,我的脚本看起来像这样:

$(document).ready( function() {

function checkFile(event) {
        var fileElement = document.getElementById("form-widgets-audio_file-input");
        var fileExtension = "";
        if (fileElement.value.lastIndexOf(".") > 0) {
            fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf(".") + 1, fileElement.value.length);
        }
        if (fileExtension == "mp3") {
            return true;
        }
        else {
            alert("You must select a mp3 file for upload");
            return false;
        }
    }

$("form#form").bind("submit",checkFile);

});

这是解决方案的一半,接下来我需要在服务器端添加验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Plone 上使用 Dexterity 按文件类型或 mimetype 限制上传 的相关文章

  • 在 Plone 构建设置中查找需求规格

    我有一个 Plone 网站 大约 4 2 4 从version txt在根目录中 我想更新到最新版本 我发现这个操作方法 截至目前 4 3 4 我继承了过多的固定版本 这些版本没有记录并且可能已经过时 当评论我的versions cfg u
  • plone 中的文件是否存在与修订版本一样多的副本?

    在 plone 中 如果文件 或任何内容 被修改 例如 4 次 则存在多少个物理副本 我正在使用 plone 4 1 其中文件和图像存储在文件系统上 内容对象由多个持久记录组成 对于文件系统上包含二进制 blob 文件的图像和文件 当内容对
  • 通过 Dexterity 在字段集之间移动字段

    在 Archetypes 中 为了将字段从字段集 或模式 移动到另一个字段集 或模式 我们可以执行以下操作 schema creators schemata default 然而 我并没有使用敏捷来实现同样的目标 我尝试过使用表单提示 前任
  • 控制对未来内容的访问

    这主要是关于未来的公共内容 但不仅如此 在标准 Plone 站点中 如果您创建的顶级内容未显示在导航上 仍然是私有的 那么您将其公开 通过工作流程 并显示在导航上 但稍后您会在将来计时它再次从导航中消失 不过 此时 如果匿名 登录用户知道
  • 无法在 Centos 上使用 Diazo (plone.app.theming)

    我使用 plone4 1 和 Diazo 在我的 mac 上制作了一个门户网站 现在 我正在尝试将其部署在我的服务器 CentOs 上 其中还有另一个带有 plone4 0 5 Collectivexdv 的站点 当我使用我的重氮主题运行该
  • 如何确定 Python 类的每个属性和方法的定义位置?

    给定 Python 中某个类的实例 能够确定源代码的哪一行将很有用defined每个方法和属性 例如实现1 例如 给定一个模块 ab py class A object z 1 q 2 def y self pass def x self
  • Plon 4.3 默认编辑器未显示

    我有一个 Plone 4 3 站点 它是从 Plone 2 5 站点迁移而来的 它一直工作得很好 但由于某种原因 编辑任何页面或内容项时显示的默认编辑器是直接的 HTML 视图 我已经在 Firefox Chrome 和 Safari 中对
  • 安装plone时不支持的哈希类型

    我尝试安装plone但是当我运行脚本 install sh 时遇到问题 以下是错误详细信息 raise ValueError unsupported hash type s name ValueError unsupported hash
  • Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象?

    我正在尝试使用绑定的源对象获取自动完成小部件以表单 z3c form 呈现 在接口类中 Parent schema Choice title u A Parent source ParentSourceBinder required Fal
  • 导航 portlet:所有子级始终展开

    如何使导航 portlet 即使对于未选定的文件夹也显示子文件夹 我的意思是初始树状态已完全展开 至少对于一个级别 即 直接子级 我正在查看 INavtreeStrategy SitemapNavtreeStrategy 和 INaviga
  • 标题和描述未使用 Collective.dexteritytextindexer 建立索引

    我有很多 Dexterity 内容类型 其中一些只是容器 只留下标题和描述 来自 plone app dexterity behaviors metadata IBasic 行为 我可以通过搜索标题或描述中的文本来找到它们 但对于我正在使用
  • 将 LinguaPlone 子语言转换回所有内容的语言?

    我想将所有内容从子语言 en ca 转换回 en 这个的API是什么 只需致电setLanguage在您的内容项上 完成此操作的快速脚本将类似于 cat context portal catalog for brain in cat unr
  • 使用 Collective.dexteritytextindexer 扩展 SearchableText

    我正在尝试扩展我的内容类型的 SearchableText 索引 我通过在模型文件中将多个字段标记为 indexer searchable true 成功地包含了多个字段 但是我无法从我的类型的 py 扩展 SearchableText 如
  • 如何在 TinyMCE for Plone 中将 替换为

    我想在 TinyMCE 中用强标签替换粗体标签 如何在 Plone 中使用 Products TinyMCE 做到这一点 我读了TinyMCE文档 http www tinymce com wiki php Configuration va
  • Plone/Zope 的外部方法

    我有两个 Plone 实例在服务器上运行 它们的位置是 usr local Plone Inst1 和 usr local Plone Inst2 我正在尝试设置外部方法 但很难确定我的 扩展 文件夹应该放置在哪里 似乎无论我把它放在哪里
  • 如何在 Plone 中定义默认视图

    我已经有一个用于 Plone 站点 主页 的默认视图的页面模板 如何定义文件夹的默认视图 此默认视图应使用页面模板 尝试这个 导航到所需的文件夹 在网址末尾添加 manage propertiesForm in the resulting
  • Portlet 在 Plone 中如何呈现/排序/布局?

    我正在尝试更改 Plone 站点中 portlet 的全局排序 我搜索了 Plone 源代码 但找不到实际迭代并呈现 portlet 的代码 例如 plone rightcolumn 和 plone leftcolumn 内容提供程序 该代
  • 将 Archetype 新闻项目迁移到 Dexterity 内容类型

    我正在尝试将新闻项目中的内容复制到我编写的其他内容类型 在我的脚本中我有news项目和project物品 第二 project 是使用 Dexterity 定义的内容类型 如果我可以复制图像和正文 那就太好了news to project在
  • 新主题产品给出“ValueError:主题 my.theme 不可用”

    我使用这些说明通过 zopeskel 创建了一个新主题http docs plone org adapt and extend theming theme product with diazo html http docs plone or
  • 在 Plone 上使用 Dexterity 按文件类型或 mimetype 限制上传

    我有一个灵活构建的自定义内容类型 在架构中 架构如下所列 我使用 plone namedfile field NamedFile 用于附件 上传 我想限制上传 以便只有 mp3 文件可以附加到我的内容类型 实现这一目标的最佳方法是什么 这是

随机推荐

  • 组织外部 JavaScript 文件的好方法是什么?

    在具有大量 HTML 页面的 ASP NET Web 应用程序中 会积累大量内联 JavaScript 函数 将它们组织到外部文件中的好计划是什么 大多数函数都是特定于为其编写的页面的 但也有少数与整个应用程序相关 单个文件可能会变得相当大
  • 匹配可能存在或可能不存在的组

    我的正则表达式需要解析一个如下所示的地址 BLOOKKOKATU 20 A 773 00810 HELSINKI SUOMI 1 2 3 4 第一组 第二组和第三组将始终存在于地址中 第 4 组可能不存在 我编写了一个正则表达式来帮助我获得
  • SQLAlchemy:如何过滤日期字段?

    这是模型 class User Base birthday Column Date index True in database it s like 1987 01 17 我想在两个日期之间进行过滤 例如选择 18 30 年区间内的所有用户
  • Codeigniter:将 sess_match_ip 设置为 FALSE 是否仍然安全

    我正在开发一个网站 来自某些国家 地区的访问者面临 codeigniter 缓存系统的问题 缓存在一两个请求后被删除 经过深入调查后 我将 sess match ip 和 sess match useragent 设置为 FALSE 现在一
  • 水平对齐徽标和导航链接

    我一直在尝试将导航部分中的两个 div 以相同的方式对齐 我已经添加了左右浮动 但这不起作用 正如您在图像中看到的那样 它们之间始终存在 2 或 3 个像素间隙 http postimg org image lgtxebtpx http p
  • IOS:init(CGImage) 的使用不明确

    我正在尝试转换CGImage into a CIImage 但是 它不起作用 这行代码 let personciImage CIImage CGImage imageView image CGImage 抛出以下错误 init CGImag
  • 使用 simple_form Rails 时测试 HTML 5 表单验证

    我正在为我的待办事项列表应用程序使用 devise 和 simple form 现在 我的 users edit html erb 有以下代码 h2 Edit profile h2 我的 user rb 看起来像这样 class User
  • 在Java中从控制台打开包中的类

    因此 当我尝试从命令提示符打开一个不在包中的 java 类时 一切正常 但是当我尝试打开一个包中的类时 它会给我 NoClassDefFoundError 错误 当我尝试打开类 java somepackage someclass 时列出包
  • ASPXAUTH Cookie 的安全标志

    我们有一个面向外部的应用程序 由外部安全公司进行了渗透测试 应用程序在 ASP NET MVC4 上开发并在 IIS8 Windows 2012 Server 上运行 报告的漏洞之一是 ASPXAUTH 不安全 当我检查 cookie 检查
  • Python 2.7 中四舍五入到小数点后两位?

    使用Python 2 7如何将我的数字四舍五入到小数点后两位而不是它给出的10位左右 print financial return of outcome 1 str out1 使用内置函数round https docs python or
  • 有没有办法在 NodeJS 中生成受密码保护的 XLSX?

    我正在寻找 npm 包或任何其他解决方法 以便能够生成带有密码的 xlsx 文件 我不想保护工作表或单元格 我希望整个文件受到密码保护 我发现了一些非常好的软件包 excel4node exceljs 但它们都无法满足我的需要 任何建议表示
  • Git 存储库错误并显示消息,它不是存储库...但它是

    我有一个 git repo 去年我一直在同一个盒子上使用 今天我跑步git status并得到错误消息 fatal Not a git repository or any parent up to mount parent home Sto
  • Android上如何动态添加LinearLayout?

    我有一个长度为 n 的数组 现在需要创建 n 个 LinearLayout 并在每个上添加不同的内容 怎样才能动态地完成呢 LinearLayout lLayout new LinearLayout context parentWidget
  • 将表列添加到 Group by 子句 - Ruby on Rails - Postgresql

    我正在尝试使用 Heroku 显然 Postgresql 对于聚合函数来说比 SQL 严格得多 当我推送到 Heroku 时 我收到一条错误消息 内容如下 关于另一个问题 https stackoverflow com questions
  • Sencha Touch Uncaught typeError:未定义不是函数

    我最近开始检查 Sencha Touch 在遵循教程时 我遇到了一些我似乎无法解决的问题 sencha 提供的 app js 中的一些基本代码运行良好 其他人似乎会出错 例如 new Ext application name NotesAp
  • 在最后一个 EditText 处按键盘上的“完成”后隐式“提交”

    我使用过一些应用程序 当我填写用户名 然后转到密码时 如果我在键盘上点击 完成 则会自动提交登录表单 而无需单击提交按钮 这是怎么做到的 尝试这个 在您的布局中放置 编辑以下内容
  • 在 Python 中绘制 3d 数组最有效的方法是什么?

    在 Python 中绘制 3d 数组最有效的方法是什么 例如 volume np random rand 512 512 512 其中数组项表示每个像素的灰度颜色 下面的代码运行速度太慢 import matplotlib as mpl f
  • Invoke-WebRequest SSL 失败?

    当我尝试使用时Invoke WebRequest我收到一些奇怪的错误 Invoke WebRequest Uri https idp safenames com Invoke WebRequest The underlying connec
  • B2C 公司品牌并不适用于所有政策

    我上传了一个sign in page background image但这仅适用于我的Edit Policy 它不应该适用于所有政策 吗 适用于编辑策略 不执行我的注册政策 假设我没有分配自定义页面 URI 只有登录策略和个人资料编辑策略的
  • 在 Plone 上使用 Dexterity 按文件类型或 mimetype 限制上传

    我有一个灵活构建的自定义内容类型 在架构中 架构如下所列 我使用 plone namedfile field NamedFile 用于附件 上传 我想限制上传 以便只有 mp3 文件可以附加到我的内容类型 实现这一目标的最佳方法是什么 这是
Powered by Hwhale