Следующий код находится внутри <script>
тега index.html
моего приложения и работает нормально (в основном код находится внутри функции, которая вызывается, когда пользователь нажимает кнопку загрузки из пользовательского интерфейса; файлы уже присутствует на сервере / в указанном ниже месте), когда я получаю доступ к своему приложению через веб-браузер следующим образом:
file:///C:/jack/testing/ui/static/index.html
Работая, я имею в виду, я вижу, как загружаются 3 файла в формате csv размером 3 КБ.
const requests = [
'file1_1555077233.csv',
'file2_1555077233.csv',
'file3_1555077233.csv'
].map(file => {
return fetch('file:///C:/jack/file/JACK/' + file)
.then(response => response.text())
.catch(console.error)
})
Promise.all(requests)
.then(contents => {
const zip = new JSZip()
contents.forEach((content, index) => {
zip.file(`file-${index}.csv`, content)
})
return zip.generateAsync({ type: 'blob' })
})
.then(blob => {
saveAs(blob, 'files.zip')
})
Сценарий 1:
Однако, когда мое приложение развернуто как файл WAR в tomcat, я получаю доступ к своему приложению следующим образом из веб-браузера:
http://localhost:8080/testing/index.html
В этом случае приведенный выше JavaScript не работает полностью. Я имею в виду, он загружает 3 файла, но размер файла пуст. Это имеет смысл, так как я захожу на сайт через HTTP и мои файлы
должен обслуживаться сервером.
В Windows как мне изменить эту строку кода return fetch('file:///C:/jack/file/JACK/' + file)
, чтобы она начала работать в этом сценарии.
Сценарий 2:
Аналогичным образом, когда я развернул WAR-файл в tomcat, работающем на сервере RHEL, я получаю доступ к своему приложению следующим образом:
https://myserver.com/testing/index/html
В этом сценарии я также заметил, что пустые файлы загружаются, когда я использовал приведенный выше код с этим изменением:
return fetch('/srv/users/JACK' + file)
Scenario #1
просто используется для моего локального тестирования, и это нормально, если он не работает для меня, потому что я понимаю, что я не могу получить доступ к файлам из моего локального каталога. Однако в Scenario 2
на сервере RHEL я пытаюсь получить доступ к файлам из каталога srv/users/JACK
, который не является локальным или специфичным для какого-либо пользователя. Почему я все еще вижу, как загружаются 3 пустых CSV-файла в этом сценарии? Пожалуйста, посоветуйте, как лучше поступить, чтобы преодолеть этот сценарий.