[英]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.