如何在Spotfire IronPython脚本中安全地使用临时文件进行Web使用?

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

我正在尝试将Spotfire可视化文件导出到xlsx文件。为了导出数据,我需要能够将可视化数据写入临时文件。 IronPython(2.7.7)脚本在作为Spotfire桌面应用程序运行时可以工作,因为它使用本地计算机的临时文件位置。但是,由于该脚本无权写入Path.GetTempFileName()返回的服务器的临时文件位置,因此它在Web上不起作用。

如何通过脚本安全地写入临时文件以在网络中使用?

脚本:

from System.IO import Path, File, StreamWriter
from Spotfire.Dxp.Application.Visuals import TablePlot

tf = Path.GetTempFileName()
writer = StreamWriter(tf)

# visTable is a script parameter pointing to a TablePlot
visTable.As[TablePlot]().ExportText(writer)

在网络上运行时出错:

Could not perform action 'write_to_file'.

Could not execute script 'write_to_file': The directory name is invalid.


   at Spotfire.Dxp.Application.Scripting.ScriptService.Execute(ScriptDefinition script, Dictionary`2 scope, InternalLibraryManager internalLibraryManager, NotificationService notificationService)
   at Spotfire.Dxp.Application.Scripting.ScriptManager.<>c__DisplayClass8_0.<ExecuteScript>b__0()
   at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(Executor executor, Boolean visible, Boolean sticky, Guid stickyGuid, Boolean isHighlight)
   at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(String displayName, Executor executor)
   at Spotfire.Dxp.Application.Scripting.ManagedScript.Execute(Dictionary`2 environment)
   at Spotfire.Dxp.Application.HtmlTextAreaControls.ActionControl.ModifyCore(Object value)
   at Spotfire.Dxp.Application.Visuals.HtmlTextArea.InteractWithControl(String id, Action`1 interaction)

IronPython版本:2.7.7

Spotfire版本:10.3.2.8

我正在尝试将Spotfire可视化文件导出到xlsx文件。为了导出数据,我需要能够将可视化数据写入临时文件。 IronPython(2.7.7)脚本在...

ironpython spotfire
1个回答
0
投票

您可以将临时文件位置设置为Spotfire服务器和用户都可以访问的网络驱动器。

© www.soinside.com 2019 - 2024. All rights reserved.