Загрузка SAPUI5 Fileuploader не запускается, если файл для загрузки установлен через setValue - PullRequest
0 голосов
/ 29 мая 2020

В SAPUI5 я использую загрузчик файлов для загрузки файла в службу шлюза.

Функциональность работает, если я выбираю файл с помощью кнопки «Обзор», однако если я установил путь к файлу с использованием setValue() и после при вызове функции upload() загрузка файла не запускается. В браузере нет ошибок.

Это то же самое поведение, если я нажимаю кнопку загрузки, но путь к файлу не задан. Я подозреваю, что мне нужно настроить что-то еще, но я понятия не имею, что это такое. Ниже приведен код

UI

<u:FileUploader id="fileUploader" 
                tooltip="Select file to upload" 
                width="415px" 
                icon="sap-icon://add-document"
                uploadOnChange="false" 
                sendXHR="true" 
                uploadUrl="/sap/opu/odata/sap/ZUPLOAD_DOC_SRV/Upload_DocSet" 
                useMultipart="false"
                uploadStart="onUploadStart" 
                uploadComplete="handleUploadComplete" 
                sameFilenameAllowed="true" 
                change="onChange"/>

Контроллер

var oFileUploader = this.byId("fileUploader");
oFileUploader.removeAllHeaderParameters(oCustomerHeaderToken);
oFileUploader.setValue("C:\\TEMP\\test.txt");           

oCustomerHeaderToken = new sap.ui.unified.FileUploaderParameter({
    name: "x-csrf-token",
    value: oFileUploader.getModel().getSecurityToken()
});

oFileUploader.addHeaderParameter(oCustomerHeaderToken);
var oSlug = new sap.ui.unified.FileUploaderParameter({
        name: "slug",
        value: slugTemp
    });


oFileUploader.addHeaderParameter(oSlug);
oFileUploader.upload();

Кто-нибудь может мне с этим помочь?

1 Ответ

1 голос
/ 02 июня 2020

По соображениям безопасности это запрещено в JavaScript браузерами. Это не имеет ничего общего с UI5, это общая мера безопасности.

Если бы это было разрешено, сценарий мог бы получить доступ ко ВСЕМ вашим файлам, генерируя случайные пути, читать их и загружать на ЛЮБОЙ сервер.

В некоторых браузерах возможно доступ к изолированной среде , но маловероятно, что это вам поможет.

Доступ ко всему жесткому диску невозможен (на данный момент).

...