有些时间不写博客,最新有需求在xpages做个多附件上传的功能,以前都是在后端使用java的servlet接收前端上传过来的附件,思考xpages有没有代码直接实现原来单独在eclipse写java代码实现。功夫不负有心人,终于找到对应的方式。
参考信息,以及原来使用前两篇文章使用的前端 文章1 文章2 内容,直接使用xpages做后端,以下是几个截图。
var con:javax.faces.context.ExternalContext = facesContext.getExternalContext();
var request:com.sun.faces.context.MyHttpServletRequestWrapper = con.getRequest();
var map:java.util.Map = request.getParameterMap();
//返回json
var writer = facesContext.getResponseWriter();
var response = con.getResponse();
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-cache");
//获取传递的值
var strUNID = map.get("name");
var strFileName = map.get("file");
print('name-->'+strUNID);
print('size-->'+map.get("size"));
print('type-->'+map.get("type"));
print('file-->'+strFileName);
//file为网页的上传附件的input name
var fileData:com.ibm.xsp.http.UploadedFile = map.get("file");
print ("processing upload: " + fileData.getClientFileName() );
var tempFile:java.io.File = fileData.getServerFile();
print('11');
//var tempFile = fileData.getServerFile();
print(tempFile.getParentFile().getAbsolutePath());
print(fileData.getClientFileName());
var correctedFile:java.io.File = new java.io.File( tempFile.getParentFile().getAbsolutePath() + java.io.File.separator +
fileData.getClientFileName() );
//rename the file on the OS so we can embed it with its correct name
var success = tempFile.renameTo(correctedFile);
print('correctedFile.getPath()-->'+correctedFile.getPath());
/*
//上传到富域
if (docTarget.hasItem(strItemNameFiles) ) {
rtFiles = docTarget.getFirstItem(strItemNameFiles);
} else {
rtFiles = docTarget.createRichTextItem(strItemNameFiles);
}
rtFiles.embedObject(lotus.domino.local.EmbeddedObject.EMBED_ATTACHMENT, "", correctedFile.getAbsolutePath(), null);
*/
//删除附件
//correctedFile.delete();
writer.write(strUNID);
writer.endDocument();
QQ交流: 873968102