我有一个Rails应用程序,该应用程序需要将文件从Javascript发送到另一个页面,这是我的本地主机服务器中的文件。问题是,我不了解如何用Javascript制作文件
这里发生了奇妙的魔术,允许我从可爱的页面viewstl中渲染stl文件
<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 GET从本地主机获取该文件,我可以t修改应由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
以此类推。其实我不明白为什么文本中首先有“ solid 2”,然后是二进制代码。我不知道stl文件,我只需要渲染它