NetSuite - 将文件写入 Suitelet 响应以直接下载文件
NetSuite - writing a file to Suitelet response to directly download file
希望对您有所帮助。这么小的东西让我很烦!!
我在 SuiteScript 2.0 中只想在按下 Suitelet 上的“提交”按钮后立即将 CSV 文件直接下载到客户端。我的代码下载到客户端,但是文件内容不正确
以下代码创建文件(成功):
//creating CSV file
var fileObj = FILEMODULE.create({
name: 'ThreePLreport.csv',
fileType: FILEMODULE.Type.CSV,
contents: contents
});
最后一段代码将文件写入客户端:
context.response.writeFile(fileObj,true);
现在 - 当我打开文件时,它看起来像这样:
当我将同一个文件保存在文件柜中时,它看起来是正确的:
我试过将 HEADERS 添加到代码中,例如:
context.response.addHeader({
name: 'Content-Type:',
value: 'text/csv' //text/csv
});
context.response.addHeader({
name: 'Content-Disposition',
value: 'attachment; filename="report1.csv"'
});
这似乎无助于更正 CSV 文件中的内容。仍显示如上所示的 HTML 代码。
有什么想法吗?
提前致谢!
尝试删除内联选项(在浏览器中显示),因此更改:
context.response.writeFile(fileObj,true);
至
context.response.writeFile(fileObj);
我已经差不多做了这么多次了。看起来你在写入文件后没有返回。例如:
context.response.writeFile({
file:fileObj,
isInline:false
});
return;
我遇到了同样的问题,我以为是 header 但不是。我意识到我提交了错误的内容。内容必须是用逗号分隔每一列的数组。行尾是'\n'.
例如。
['title1','title2','title3','\n','contentline1','contentline1','contentline1','\n','contentline2','contentline2','contentline2','\n']
1.- 构建数组
2.- 创建 csv 文件
var downFile = file.create({
name: somename + '_' + qty + '.csv',
fileType: file.Type.CSV,
contents: csvBody,
});
3.- 下载文件
context.response.writeFile({
文件:downFile
});
希望对您有所帮助。这么小的东西让我很烦!!
我在 SuiteScript 2.0 中只想在按下 Suitelet 上的“提交”按钮后立即将 CSV 文件直接下载到客户端。我的代码下载到客户端,但是文件内容不正确
以下代码创建文件(成功):
//creating CSV file
var fileObj = FILEMODULE.create({
name: 'ThreePLreport.csv',
fileType: FILEMODULE.Type.CSV,
contents: contents
});
最后一段代码将文件写入客户端:
context.response.writeFile(fileObj,true);
现在 - 当我打开文件时,它看起来像这样:
当我将同一个文件保存在文件柜中时,它看起来是正确的:
我试过将 HEADERS 添加到代码中,例如:
context.response.addHeader({
name: 'Content-Type:',
value: 'text/csv' //text/csv
});
context.response.addHeader({
name: 'Content-Disposition',
value: 'attachment; filename="report1.csv"'
});
这似乎无助于更正 CSV 文件中的内容。仍显示如上所示的 HTML 代码。
有什么想法吗?
提前致谢!
尝试删除内联选项(在浏览器中显示),因此更改:
context.response.writeFile(fileObj,true);
至
context.response.writeFile(fileObj);
我已经差不多做了这么多次了。看起来你在写入文件后没有返回。例如:
context.response.writeFile({
file:fileObj,
isInline:false
});
return;
我遇到了同样的问题,我以为是 header 但不是。我意识到我提交了错误的内容。内容必须是用逗号分隔每一列的数组。行尾是'\n'.
例如。 ['title1','title2','title3','\n','contentline1','contentline1','contentline1','\n','contentline2','contentline2','contentline2','\n']
1.- 构建数组 2.- 创建 csv 文件
var downFile = file.create({
name: somename + '_' + qty + '.csv',
fileType: file.Type.CSV,
contents: csvBody,
});
3.- 下载文件
context.response.writeFile({ 文件:downFile });