繁体   English   中英

文件从浏览器传输到本地连接的iPhone

[英]File transfer from Browser to locally connected iPhone

现在,我在My iPhone Application上创建了一个HTTP Server,并在那里托管了HTML。 然后在浏览器中访问位于iPhone同一网络中的系统。 我可以在浏览器上看到文件。

现在使用WebSockets我试图将文件从浏览器发送到应用程序, 但它不起作用。 文本消息没问题,但数据没有。 作为一种解决方法,我通过Base64 String尝试了它,但在这种情况下也是套接字Get Closed。

为了使用JAVAScript上传,我编写了这段代码,在这里我尝试通过发送大小为200个字符的片段的Base64字符串。

    function sendFile() {
        var preview = document.querySelector('img');
        var file = document.querySelector('input[type=file]').files[0];
        var reader  = new FileReader();
        var rawData =  new ArrayBuffer();


        reader.onloadend = function () {
        var stringContent = reader.result;
        preview.src = stringContent;
        var array =  stringContent.match(/.{1,200}/g);
        for (var i = 0; i < array.length; i++) {
            ws.send(array[i]);
        };

      }
     if (file) {
        reader.readAsDataURL(file);
     }else {
        preview.src = "";
     }
}

在iPhone方面,我使用了Libary CocoaHTTPServer的 WebSocket

插座在此处关闭。

插座在此处关闭。

编辑

经过大量的试验和错误后,我才知道发生这种情况如果我在Mac浏览器中打开这个,不是在任何其他设备的浏览器如iPad,iPhone。 这是非常奇怪的用例,但它是真的。

编辑二

经过大量的疑惑,我发现了一个线索,这对iPhone,iPad,iPod和Opera浏览器很有效,因为它们有旧的websocket支持,我从这里找到了这个

在这个问题中,Guy有相反的情况,他试图关闭这些浏览器的连接,在我的情况下,它正在关闭其他浏览器,如chrome,Mozilla等。这是因为一些叫做Hybi格式的数据包 这可能有助于某人为我的案例提出解决方案。

我想你应该看一下官方的CocoaHTTPServer例子。 有一个用于http文件上传: https//github.com/robbiehanson/CocoaHTTPServer/tree/master/Samples/SimpleFileUploadServer

ws:允许协议? 例如config.xml

<access origin="ws://192.168.1.xx/*"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM