有没有办法在提交时更改fileupload控制文件名

时间:2016-08-03 18:20:53

标签: javascript xpages

这是我简单的xPage:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="document1" formName="File Resource"></xp:dominoDocument>
    </xp:this.data>
    <xp:fileUpload id="fileUpload1" value="#{document1.FieldAttachment}">
    </xp:fileUpload>

    <xp:button value="Save" id="button1">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete" immediate="false" save="true"></xp:eventHandler>
    </xp:button>
</xp:view>

我希望在提交/保存时保存在RichText字段中选择的文件,但使用自定义名称。换句话说,无论用户选择上传,我都希望自定义名称作为Notes文档中的文件附件。例如。用户上传MyPicture.jpg然后在提交/保存时将文件添加为Notes文档的附件,但使用其他名称,例如Picture1.jpg

1 个答案:

答案 0 :(得分:3)

是的,您可以在提交时更改附件的名称。使用fileUpload的属性filename

<xp:fileUpload
    id="fileUpload1"
    value="#{document1.FieldAttachment}"
    useUploadname="false"
    filename="Picture1.jpg">
</xp:fileUpload>

enter image description here

如果您想根据上传的文件名计算附件名称,可以使用this.value.getClientFileName()获取原始文件名。

示例:添加前缀&#34;图片_&#34;到原始文件名

<xp:fileUpload
    id="fileUpload1"
    value="#{document1.FieldAttachment}"
    useUploadname="false">
    <xp:this.filename><![CDATA[#{javascript:
        var fileName = this.value.getClientFileName();
        return "Picture_" + fileName;
    }]]></xp:this.filename>
</xp:fileUpload>