点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
在我的应用程序中,我具有一项功能,可让我从桌面上载文本文件,然后显示一个包含文本文件内容的对话框。
但是,我想使其自动化,以便应用程序将自动从桌面获取文件。 我尝试执行HTTP请求,但是它给了我一个CORS策略:由于URL主机名与我正在访问的URL(C:驱动器)不同,因此跨源请求错误
有什么方法可以执行此过程吗? 我在下面提供了我的代码。
CONTROLLER.JS
onChange:函数(e){ var file = e.getParameter(" files")&& e.getParameter(" files")[0]; 如果(文件&& window.FileReader){ var reader = new FileReader(); var that = this; reader.onload =函数(evn){ var strCSV = evn.target.result; //CSV字符串 警报(strCSV); }; reader.readAsText(file); } },
VIEW.XML
谢谢。
嗨,苏尼尔!
您尝试做的事情看起来很简单,但是有两个主要问题使事情变得相当复杂:
1)除非用户明确选择文件(例如,从上载字段中选择文件),否则现代浏览器将阻止对本地文件系统的访问:这是一项重要的安全功能,因为您通常不希望执行JavaScript代码 通过恶意网站来处理您的文件。
2)浏览器还将阻止JavaScript代码以访问位于另一个域上的资源(出于安全原因),除非满足多个条件。
您可以在以下文章中找到有关此主题以及如何启用跨域资源共享(CORS)的更多信息:跨域资源共享(CORS)
我认为,实现您的功能的一种可能选择是开发
a)通过本地Web服务器公开的启用了CORS的Web服务
b)或 NodeJS模块
可以从UI5应用程序中调用来访问文件系统。 应该采取很多预防措施(身份验证,限制的文件系统访问和权限...),因为这可能会带来严重的安全漏洞。
如果有人有更简单的解决方案,我也想听听!
嗨,Sunil!
我的回答仅在以下情况下适用:
-SAPUI5应用程序 位于网络中并通过本地Web应用程序服务器提供服务
-您正通过WebService/NodeJS模块在单个计算机/服务器上集中提供文件
如果您打算将SAPUI5应用程序部署到SAP Cloud Platform ,并且您想从单个用户的计算机访问文件,那么根据我在答案中暴露的限制,恐怕没有简单的解决方案(或根本没有解决方案?),并且您需要用户明确选择要上传的文件 。
是否允许浏览器自动从硬盘驱动器提取数据流,而无需用户操作? 听起来像是一个漏洞,可能会让黑客流口水...
如果文件是在本地硬盘上创建的,那么您将需要某种类型的脚本化进程来移动 信息可能会通过OData服务发送到UI5应用程序可以使用数据的位置。
您认为ui5可以完成这项工作吗?
一周热门 更多>