Как создать двоичный файл в Javascript? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть приложение Rails, которому нужно отправить файл на другую страницу из Javascript, файл, который у меня есть на моем локальном сервере. Дело в том, что я не понимаю, как сделать файл в Javascript

Здесь происходит чудесная магия, которая позволяет мне отображать stl файлы с прекрасной страницы viewstl

<iframe id="vs_iframe" src="https://www.viewstl.com/?embedded&bgcolor=white&color=purple" style="border:0;margin:0;width:100%;height:100%;"></iframe>

Здесь я должен взять свой файл с локального хоста и отправить его в viewstl

<script type = 'text/javascript'>
    document.getElementById('vs_iframe').onload=function()
    {
#First, I make an http get request to my own server to get the file
        const Http = new XMLHttpRequest();
        var f;

        Http.open("GET", 'http://localhost:3000<%= @pedido.file_url %>');
        Http.send();
#Then, I understand that here I have the file in Http.response because if I put it in an alert I see a lot of binary code in my page
        Http.onreadystatechange = (e) => {
#Here is the alert I told you about
            alert(Http.response)
#Here, I guess I'm creating an beatyful file, but It apears to be an bad formated file because...
            f = new File([Http.response], '<%= @pedido.file.filename.to_s %>');
#Because when I send this file to viewstl.com it does not recognize the file. It say "Can't parse file"
            document.getElementById('vs_iframe').contentWindow.postMessage({msg_type:'load', file:f}, '*');
        }
    }

</script>

Дело в том, что если я в своем браузере захожу на рендер "http://localhost:3000<%= @ pedido.file_url%>", я действительно получаю свой файл stl. Если я отправляю этот stl-файл в viewstl с помощью другого сценария (тот, который берет файл с моего диска с тегом ввода), он хорошо отрисовывается, проблема в том, что если я пытаюсь получить этот файл с моего локального хоста с помощью XMLHTTPRequest, ПОЛУЧИТЕ, что я могу ' Это файл, который должен использоваться viewstl.

Это предупреждение, которое я получил

solid 2                                                                         
1eJ��싗=�[}?Af
C���D�t�BE
Cm��D�k�B�  C�=�DT��B�O��݉�=�[}?�   C�=�DT��BE
Cm��D�k�B�"
C"��D`b�B`U���=�[}?�   C�=�DT��B�"
C"��D`b�B

И так далее. На самом деле я не понимаю, почему в тексте сначала стоит «сплошная 2», а затем двоичный код. Я не знаю о файлах STL, я просто должен сделать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...