有些時間不寫博客,最新有需求在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