NetSuite - 写文件到Suitelet响应直接下载文件。

问题描述 投票:0回答:1

希望你能帮忙。一个看起来很小的东西,却让我感到非常困扰!

我想在SuiteScript 2.0中做的是,当我点击Suitelet的SUBMIT按钮时,直接下载一个CSV文件到客户端。我的代码下载到客户端,但文件中的内容不正确。

下面的代码创建了这个文件(成功)。

    //creating CSV file
    var fileObj = FILEMODULE.create({
        name: 'ThreePLreport.csv',
        fileType: FILEMODULE.Type.CSV,
        contents: contents
    });  

最后一段代码将文件写入客户端。

   context.response.writeFile(fileObj,true);

现在,当我打开文件时,它看起来是这样的。

CSV file output from suitelet

当我把同一个文件保存在文件柜上时,它看起来是正确的。

enter image description here

我试过在代码中添加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代码。

有什么好办法吗?

先谢谢你了!

javascript csv netsuite httpresponse suitescript2.0
1个回答
2
投票

我几乎就是这样做了很多次。看来你在写完文件后并没有返回,例如:。

context.response.writeFile({
    file:fileObj,
    isInline:false
});
return; 

0
投票

尝试删除内联选项(在浏览器中显示) 所以改变:

context.response.writeFile(fileObj,true);

改为

context.response.writeFile(fileObj);
© www.soinside.com 2019 - 2024. All rights reserved.