撇号:仅允许上传PDF文件

时间:2018-08-13 11:40:18

标签: node.js apostrophe apostrophe-cms

我有一个与关系有关的领域。我只想上传PDF文件。而我不想从app.js / default.js更改dgad-attachments的默认设置,该默认设置允许所有office类型的文件,而在项目中其他位置则需要这些文件。

{
  name: '_file',
  type: 'joinByOne',
  withType: 'apostrophe-file',
  label: 'File',
  required: true,
  idField: 'fileId',
  filters: {
    projection: {
      slug: 1,
      title: 1,
      attachment: 1
    }
  },
  extensions: ['pdf'],
  extensionMaps: {},
  image: false
}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

听起来您想在Apostrophe-attachments中创建一个新的文件组。您可以使用文件组来指定在将撇号附件字段添加到对象的架构时应使用哪些类型的文件和/或扩展名。为了添加仅包含PDF的文件组,您将需要将此文件组添加到app.js文件中的modules对象:

'apostrophe-attachments': {
    fileGroups: [
        {
            name: 'pdf',
            label: 'Pdf',
            extensions: ['pdf'],
            image: false
        }
    ]
}

这将创建一个新的文件组,该文件组仅允许扩展名为“ pdf”的文件。撇号文件不是常规的架构类型(无法像其他对象一样将其添加到对象的架构中)。代替使用撇号文件,最好使用撇号附件,可以将其给予文件组以限制允许的文件类型。为了在附件中指定该组,您的新字段将最终看起来像这样:

{
  name: 'file',
  type: 'attachment',
  label: 'File',
  group: 'pdf',
  required: true
}

如果您确定需要直接对撇号文件使用联接,则可能需要添加一些自定义代码以限制文件类型。如果是这样,您可以在此处找到有关撇号文件的更多信息:

https://apostrophecms.org/docs/modules/apostrophe-files/

您可能可以查看撇号附件处理文件组的方式,并在必要时复制行为:

https://apostrophecms.org/docs/modules/apostrophe-attachments/