基本自定义 > 用户界面自定义 > 收集 UI 数据 > 文件下载 > 解决方案
  
解决方案
调用 JavaScript 函数 PTC.util.downloadUrl(url) 以启动文件下载。有关 URL 参数的信息,请参阅自定义点
您可以在 JSP 的一个 <script> 部分中从 JavaScript 直接调用,或从 Java 返回包含下一个 FormResultAction.JAVASCRIPT 操作类型的 FormResult
必备知识
要获得此结果,需要了解以下内容:
Windchill Web 页面的基本开发
JavaScript
Web 服务器配置和内容处置
URL 安全性最佳做法
解决方案元素
元素
类型
说明
main.js
JavaScript
此文件包括用于定义 PTC.util.downloadUrl(url) 函数的 JavaScript 片段 util.jsf。位于 \codebase\netmarkets\javascript\util
<MyScript.js> 或 <MyScriptPart.jsfrag>
JavaScript (整体或片段)
直接在 JavaScript 中或在 JSP 的 <script> 标记中对 PTC.util.downloadUrl(url) 的调用进行编码。
<MyPage.jsp> 或 <MyPagePart.jspf>
JSP (整体或片段)
<MyWizardFormProcessor.java>
Java 类
使用 FormResult 对象将 JavaScript 传递至客户端以执行。常规模式为:
formResult.setStatus(FormProcessingStatus.SUCCESS); // 或先前值
formResult.setJavascript(js); // 其中 js 是 JavaScript 代码的字符串
formResult.setNextAction(FormResultAction.JAVASCRIPT); JavaScript 字符串应包含对 PTC.util.downloadUrl(url); 的调用,它也可能包含其他必要的代码。如果在向导中处理“确定”按钮单击操作,则应在打开的窗口中运行下载:
window.opener.PTC.util.downloadUrl(theURL);
然后关闭向导:
window.close();
过程 - 下载 Windchill URL
由于 PTC.util.downloadURL(url) 是一个可在很多情况下使用的实用程序函数,因此不会用于任何单一过程。
对于 Javascript 和 JSP,创建或修改启动下载、计算或查找所需文件 URL 的代码,并在需要时调用 PTC.util.downloadURL(url)
对于 Java 中的服务器端启动,请参阅随附的示例
URL 安全性
文件下载实现必须考虑到安全问题。
不应向用户显示有关服务器文件结构的信息。其中包括 URL。
应该不允许用户在下载文件时遍历服务器的文件结构。
应该不允许用户在下载文件时更改参数,如文件名。
始终不允许用户通过此类遍历或修改对任何文件进行未经授权的访问。