ZCML File
configure.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:browser="http://namespaces.zope.org/browser"
    i18n_domain="zope"
    >
<browser:form
    name="edit.html"
    schema="zope.app.file.browser.file.IFileEditForm"
    for="zope.app.file.interfaces.IFile"
    permission="zope.ManageContent"
    label="Change a file"
    class="zope.app.file.browser.file.FileEdit"
    />
<browser:menuItem
    menu="zmi_views"
    for="zope.app.file.interfaces.IFile"
    permission="zope.ManageContent"
    title="Edit"
    filter="python:context.contentType.startswith('text/')"
    action="edit.html"
    />
<browser:page
    class=".file.FileUpload"
    for="zope.app.file.interfaces.IFile"
    permission="zope.ManageContent"
    name="upload.html"
    template="file_upload.pt"
    menu="zmi_views"
    title="Upload"
    />
<browser:page
    class=".file.FileView"
    for="zope.app.file.interfaces.IFile"
    permission="zope.View"
    name="index.html"
    attribute="show"
    />
<browser:addMenuItem
    title="File"
    description="A File"
    permission="zope.ManageContent"
    class="zope.app.file.File"
    view="zope.app.file.File"
    />
<browser:page
    class=".file.FileAdd"
    for="zope.app.container.interfaces.IAdding"
    permission="zope.ManageContent"
    name="zope.app.file.File"
    template="file_add.pt"
    />
<browser:icon
    name="zmi_icon"
    for="zope.app.file.interfaces.IFile"
    file="file_icon.gif"
    />
<browser:editform
    name="upload.html"
    schema="zope.app.file.interfaces.IImage"
    permission="zope.ManageContent"
    template="image_edit.pt"
    class=".image.ImageUpload"
    label="Upload an image"
    menu="zmi_views"
    title="Upload"
    />
<browser:page
    class=".image.ImageData"
    allowed_attributes="__call__ tag"
    for="zope.app.file.interfaces.IImage"
    permission="zope.View"
    name="index.html"
    />
<browser:icon
    name="zmi_icon"
    for="zope.app.file.interfaces.IImage"
    file="image_icon.gif"
    />
<browser:addMenuItem
    title="Image"
    description="An Image"
    permission="zope.ManageContent"
    class="zope.app.file.image.Image"
    view="zope.app.file.Image"
    />
<browser:addform
    name="zope.app.file.Image"
    schema="zope.app.file.interfaces.IImage"
    permission="zope.ManageContent"
    class=".image.ImageAdd"
    label="Add an Image"
    content_factory="zope.app.file.image.Image"
    />
<browser:page
    for="zope.app.file.interfaces.IFile"
    permission="zope.ManageContent"
    name="preview.html"
    template="preview.pt"
    menu="zmi_views"
    title="Preview"
    />
<browser:page
    for="zope.app.file.interfaces.IImage"
    permission="zope.ManageContent"
    name="preview.html"
    template="preview.pt"
    menu="zmi_views"
    title="Preview"
    />
</configure>