SAPUI5自动上传文件

2020-09-03 01:51发布

         点击此处--->   EasySAP.com群内免费提供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

  

谢谢。

         点击此处--->   EasySAP.com群内免费提供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

  

谢谢。

付费偷看设置
发送
5条回答
代楠1984
1楼-- · 2020-09-03 02:01

嗨,苏尼尔!

您尝试做的事情看起来很简单,但是有两个主要问题使事情变得相当复杂:

1)除非用户明确选择文件(例如,从上载字段中选择文件),否则现代浏览器将阻止对本地文件系统的访问:这是一项重要的安全功能,因为您通常不希望执行JavaScript代码 通过恶意网站来处理您的文件。

2)浏览器还将阻止JavaScript代码以访问位于另一个域上的资源(出于安全原因),除非满足多个条件。

您可以在以下文章中找到有关此主题以及如何启用跨域资源共享(CORS)的更多信息:跨域资源共享(CORS)

我认为,实现您的功能的一种可能选择是开发

a)通过本地Web服务器公开的启用了CORS的Web服务

b)或 NodeJS模块

可以从UI5应用程序中调用来访问文件系统。 应该采取很多预防措施(身份验证,限制的文件系统访问和权限...),因为这可能会带来严重的安全漏洞。

如果有人有更简单的解决方案,我也想听听!

樱桃小丸子0093
2楼-- · 2020-09-03 01:58

嗨,Sunil!
我的回答仅在以下情况下适用:
-SAPUI5应用程序 位于网络中并通过本地Web应用程序服务器提供服务
-您正通过WebService/NodeJS模块在单个计算机/服务器上集中提供文件
如果您打算将SAPUI5应用程序部署到SAP Cloud Platform ,并且您想从单个用户的计算机访问文件,那么根据我在答案中暴露的限制,恐怕没有简单的解决方案(或根本没有解决方案?),并且您需要用户明确选择要上传的文件 。

悠然的二货
3楼-- · 2020-09-03 02:19

是否允许浏览器自动从硬盘驱动器提取数据流,而无需用户操作? 听起来像是一个漏洞,可能会让黑客流口水...

小熊yu生菜
4楼-- · 2020-09-03 02:15

如果文件是在本地硬盘上创建的,那么您将需要某种类型的脚本化进程来移动 信息可能会通过OData服务发送到UI5应用程序可以使用数据的位置。

Aaron 3364
5楼-- · 2020-09-03 02:09

您认为ui5可以完成这项工作吗?

一周热门 更多>