Xpages 如何使用xpage将文本文件写入特定文件夹

Xpages 如何使用xpage将文本文件写入特定文件夹,xpages,lotus-notes,xpages-ssjs,ssjs,Xpages,Lotus Notes,Xpages Ssjs,Ssjs,如何在项目文件夹中创建文本文件,我需要将此文件作为电子邮件附件发送。然后我需要删除这个文件 var textBuffer="BEGIN:VCALENDAR\r\nVERSION:2.0\r\n...END:VEVENT\r\nEND:VCALENDAR"; file = new java.io.File("c:\\Notes\\sample.ics"); //Create the file if (file.createNewFile()){ print("File is created!

如何在项目文件夹中创建文本文件,我需要将此文件作为电子邮件附件发送。然后我需要删除这个文件

var textBuffer="BEGIN:VCALENDAR\r\nVERSION:2.0\r\n...END:VEVENT\r\nEND:VCALENDAR";

file = new java.io.File("c:\\Notes\\sample.ics");

//Create the file
if (file.createNewFile()){

print("File is created!");

}
else{

print("File already exists.");

}

//Write Content
writer = new java.io.FileOutputStream(file);

writer.write(textBuffer.getBytes());

writer.close();

var db:Database  = session.getDatabase("server name", "database name", false);

var doc:NotesDocument = database.createDocument();

doc.appendItemValue("Form", "Memo");

var nMime:NotesMIMEEntity = doc.createMIMEEntity();

var mimeHeader:NotesMIMEHeader;

mimeHeader = nMime.createHeader("To");

mimeHeader.setHeaderVal("email id");

mimeHeader = nMime.createHeader("Subject");

mimeHeader.addValText("Test Email", "UTF-8"); 

var stream:NotesStream = session.createStream();

var pathname:string = "c:\\Notes\\sample.ics";

if (stream.open(pathname, "binary")) {

    nMime.getContentAsBytes(stream);

    stream.close();

    }

nMime.setContentFromBytes(stream, "text/plain; charset=\"UTF-8\"",NotesMIMEEntity.ENC_NONE);

doc.send();

session.setConvertMIME(true);

执行此代码后,我收到一封邮件,但没有附件。请帮助我找出此代码中的错误。

您的问题有两个可能的答案:

a) “project folder”指的是本地计算机(运行浏览器的计算机)上的文件夹:为安全起见,任何Web服务器都不能指定下载位置。这是一种浏览器设置。那是为了安全。很容易损坏用户的工作站。 唯一的方法是控制浏览器-这可能适用于集成用户,但不适用于用户群

b) “项目文件夹”是服务器(运行Domino的机器)上的一个位置。在这里,您可以实例化一个FileOutputStream(Java对象)并执行相同的操作。SSJS可以使用Java类


如果你分享你为什么需要这个,可以提出一个更好的解决方案

您需要一种完全不同的方法: -检查Notes中的Mime类 -创建多部分mime文档 -将文本数据写入标记为附件的mime部分

不需要创建文件。另见此答案:


如果您坚持创建物理文件:您需要将其存储在服务器上
FileOutputStream
样式,因为服务器端附加功能无法访问您的本地文件系统

到目前为止您尝试了什么?你在哪里被卡住了?我能够使用response.getOutputStream().write(textBuffer.getBytes())创建文件;方法,但我需要将此文件写入项目中的特定文件夹。我只需要使用ssjs在项目路径文件夹中创建一个文件。我是SSJS新手。什么是“项目文件夹”?它可以从Domino访问吗?为什么要在那里创建它,然后将其删除?如果您只是从其他地方复制n粘贴代码而不知道它的作用,这总是有问题的:确切的需要是将某些内容写入文本文件,并通过邮件将此文本文件作为附件发送。我们可以将文本文件存储在文档中吗?这是您对需求的看法。真正的方法是:创建一些可以通过电子邮件发送和接收的东西,并附带附件