如何使用xPages上载控件将上载的文件存储到本地文件系统?

如何使用xPages上载控件将上载的文件存储到本地文件系统?,xpages,Xpages,如何使用xPages上载控件将上载的文件存储到本地磁盘?我只有一个简单的表单,在我的xPages上有文本字段和fileUpload控件(没有文档绑定,所以我正在访问xPages组件,以便在提交时获取它们的值)。我如何从java代码访问这样上传的文件?我可以从我的java代码中获得这个上传控件,所以我有了“XspFileUpload”对象。但我看不到任何方法来访问原始文件对象,以便能够将其保存在文件系统中。。。有人能帮我吗?要从上载控件检索文件,您可以使用这段代码(它是java,所以您需要将其转换

如何使用xPages上载控件将上载的文件存储到本地磁盘?我只有一个简单的表单,在我的xPages上有文本字段和fileUpload控件(没有文档绑定,所以我正在访问xPages组件,以便在提交时获取它们的值)。我如何从java代码访问这样上传的文件?我可以从我的java代码中获得这个上传控件,所以我有了“XspFileUpload”对象。但我看不到任何方法来访问原始文件对象,以便能够将其保存在文件系统中。。。有人能帮我吗?

要从上载控件检索文件,您可以使用这段代码(它是java,所以您需要将其转换为ssjs..)

//从httpservletrequest获取文件
HttpServletRequest hsr=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
fileUploadID='XspFileUpload control'.getClientId(FacesContext.getCurrentInstance());
Map Map=hsr.getParameterMap();
UploadedFile=((UploadedFile)map.get(fileuploadeid));
如果(f==null){
抛出新的java.lang.Exception(“找不到文件”);
}
字符串文件名=f.getServerFileName()
if(super.isValid()&&!this.ishiden()){
File serverFile=f.getServerFile();
如果(serverFile!=null&&serverFile.exists()){
String dir=serverFile.getParent();
File tempFile=new File(dir+File.separator+fileName);//在服务器上创建文件句柄
}
}

这是使用jjtbsomhorst的答案编写的SSJS代码,以及


另外,XPage中有一个名为“message”的标签。

这是什么?我尝试了fileUpload控件ID(就像我在xpage上尝试的那样),但它不起作用,它说它不存在。找到了。将fileuploadid替换为“XspFileUpload control”。getClientId(FacesContext.getCurrentInstance())是否可以使用ssjs获取服务器文件的mimetype?
// get file from httpservletrequest 

HttpServletRequest hsr = (HttpServletRequest) FacesContext      .getCurrentInstance().getExternalContext().getRequest();
fileUploadID = 'XspFileUpload control'.getClientId(FacesContext.getCurrentInstance());
Map<?, ?> map = hsr.getParameterMap();
UploadedFile f = ((UploadedFile) map.get(fileUploadID));

if (f == null) {
  throw new java.lang.Exception("File could not be found");
}

String fileName = f.getServerFileName()
if (super.isValid() && !this.isHidden()) {
   File serverFile = f.getServerFile();
   if (serverFile != null && serverFile.exists()) {
       String dir = serverFile.getParent();
       File tempFile = new File(dir + File.separator + fileName); // create a handle to the file on server 
   }
}
var con = facesContext.getExternalContext(); 
var request:com.sun.faces.context.MyHttpServletRequestWrapper = con.getRequest(); 
var map:java.util.Map = request.getParameterMap(); 
var fileDataName = "view:_id1:file"; 
var fileData:com.ibm.xsp.http.UploadedFile = map.get( fileDataName ); 

if (fileData == null) {
    getComponent("message").value = "File could not be found on " + fileDataName;
}

var fileName = fileData.getServerFileName();
var serverFile:java.io.File = fileData.getServerFile();
if (serverFile != null && serverFile.exists()) {
    var dir = serverFile.getParent();
    var tempFile:java.io.File = new java.io.File(fileName);
    var correctedFileName = dir + java.io.File.separator + fileData.getClientFileName();
    var correctedFile:java.io.File = new java.io.File( correctedFileName ); 
    var success = tempFile.renameTo(correctedFile);
    getComponent("message").value = "Yay!" + correctedFileName;
    //correctedFile.renameTo(tempFile);
}
else {
    getComponent("message").value = "There's a problem to find the temporal file.";
}