2012-08-03 50 views
1

XPages中的文件名,文件上传控件,用户选择一个文件后,但它保存之前,你怎么能得到的文件名?我对该路径不感兴趣,因为我认为由于安全问题导致该路径不可用,但是我希望尽可能获取文件名和扩展名。你如何从XPages中FileUpload控件

谢谢!

回答

6

其实你可以得到的文件,并完全操纵它,阅读它,做任何你想做的事情,它存储在服务器上的文件夹XSP,您已向其读/写访问...这里是一个代码片段,与文件交互时,我通常从beforeRenderResponse打电话......

var fileData:com.ibm.xsp.http.UploadedFile = facesContext.getExternalContext().getRequest().getParameterMap().get(getClientId('<INSERT ID OF UPLOAD CONTROL HERE (ie. fileUpload1)>')); 

if (fileData != null) { 
    var tempFile:java.io.File = fileData.getServerFile(); 
    // Get the path 
    var filePath:String = tempFile.getParentFile().getAbsolutePath(); 
    // Get file Name 
    var fileName:String = tempFile.getParentFile().getName(); 
    // Get the Name of the file as it appeared on the client machine - the name on the server will NOT be the same 
    var clientFileName:String = fileData.getClientFileName(); 
} 
+0

有些事情,你可能会感兴趣:默认情况下,在上传的数据存储在服务器上的临时位置是相同的子文件夹结构,序列化组件树(用于应用程序,唐不会将所有页面存储在内存中)。 – 2012-08-05 18:43:41

+0

请注意,最后一行有一个拼写错误:fileDate应该是fileData(试图编辑它,但编辑需要更改至少6个字符)。 – 2012-09-25 10:51:31

+0

谢谢Mark,我修好了。 – 2012-09-25 12:48:48

1

这听起来像你是指通过需要CSJS,您可以用下面的代码做的就是数据:

var filename = dojo.byId('#{id:fileUpload1}').value.split('\\').pop();