如何在XPage中进行更好的文件上传控制

时间:2017-06-22 19:20:40

标签: file-upload xpages xsp

我试图通过隐藏丑陋的文件上传按钮来实现更好的上传控制。 使用下面的代码我设法隐藏文件上传控件并提供用户可以点击的链接,效果很好!但我还需要告知用户已经选择了一个文件。

如何在提交表单之前获取用户选择的文件名?

enter image description here XSP

 <xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:label id="label2" for="fileUpload1">
        <i class="fa fa-image"></i>
        &#160;
        <i class="fa fa-paperclip"></i>
        <xp:fileUpload id="fileUpload1" value="#{newtopic.Body}"
            style="display:none">
        </xp:fileUpload>
    </xp:label>
 </xp:view>

还尝试了以下

var fileUpload1:com.ibm.xsp.component.xp.XspFileUpload = getComponent("fileUpload1");
getComponent("computedField1").setValue("FN= " + fileUpload1.getFilename())

3 个答案:

答案 0 :(得分:2)

在客户端,您可以通过在输入元素中添加 onchange 处理程序来获取要上传的文件的名称:

var eInput=document.getElementById("idOfInputControl");
eInput.addEventListener("change",function(){
    var i,filename,files;
    files=this.files;
    for (i=0;i<files.length;i++) {
        filename=files[i].name;
        // do whatever you want with the filename
    }
})

答案 1 :(得分:1)

看看Twitter Bootstrap文件输入。它将普通的文件输入选择器转换为漂亮的按钮(使用Bootstrap样式):http://gregpike.net/demos/bootstrap-file-input/demo.html。它显示按钮旁边或按钮内所选文件的名称。

使用它的一种简单方法是设置所有文件选择器的样式:

$(document).ready( 
    function() {
        // Style the file button
        $('input[type=file]').bootstrapFileInput();
    }
);

使用Javascript,您可以使用files属性获取所选文件。这是一个使用jQuery的简单示例:

var selectedFile = $('input[type=file]').val()

答案 2 :(得分:1)

另请查看David Leedy的NotesIn9,它允许上传多个文件。 http://www.notesin9.com/2016/08/25/notesin9-194-upload-files-with-plupload/