2015-06-12 17 views
11

Şu anda iPhone Uygulamamda bir HTTP Sunucusu oluşturdum ve orada HTML barındırdım. Daha sonra aynı ağdaki sistemde bulunan sisteme erişerek. Tarayıcımdaki dosyayı görebiliyorum.Tarayıcıdan yerel olarak bağlı bir dosyaya dosya aktarımı iPhone

Artık WebKontrollerini Kullanarak Tarayıcıdan Uygulamaya, 'dan Dosya göndermeye çalışıyorum ancak çalışmıyor. Metin mesajı ile iyi ama veri durumunda değil. Bir geçici çözüm olarak, Base64 Dizesi ile denedim, ancak bu durumda da Yuva Kapandı.

JAVAScript'i kullanarak yüklemek için bu kodu yazdım, burada Base64 dizesini 200 karakterlik boyuttaki parçalara göndererek denedim. iPhone tarafında

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 = ""; 
    } 
} 

, ben Soket bu hat kapalı Libary CocoaHTTPServer

den WebSocket Class kullandık.

Socket closed at this line.

DÜZENLEME

deneme ve hata bir sürü sonra ben değil başka cihazların durumunda, Mac Tarayıcıda bu açıyorum Eğer bu oluyor ki tanıdım iPad, iPhone gibi bir tarayıcı. Bu çok garip kullanım durumu ama doğru.

merak sürü sonra, bu eski WebSocket desteği var çünkü, ben here. dan buldum, iPhone, iPad, & Opera tarayıcıları iPod için güzel çalışıyordu, buna bir Clue bulundu II

DÜZENLEME . Bu soruya Guy In

O bu tarayıcılarda bağlantıyı kapatmaya çalışıyor My durumunda bu krom, Mozilla vb gibi diğer tarayıcılar üzerinde kapatıyor, ters durum var Çünkü ürünlerin şey Hybi biçimlendirilmiş paketler denir. Bu, birisinin davanın çözümünü önermesine yardımcı olabilir.

+0

Neden dosya yükleme için websockets kullanıyorsunuz. Normal bir html formu (belki de bir litle ajax ile) işi yapmaz mı? – Martin

+0

Detaylandırma sağlayabilir misiniz lütfen? – Mrug

+0

WebSocket, çift yönlü iletişim için kullanılır, istediğiniz zaman ve viceversa'da sunucudan bağlı bir istemciye veri gönderebileceğiniz anlamına gelir. Sunucuya bir dosya yüklemek için bu gerekli değildir, sadece JQuery Yükleme (https://blueimp.github.io/jQuery-File-Upload/) gibi bir eklenti kullanın ve işler çok daha kolaylaşır. – user1977204

cevap

0

ws: protokolüne izin verilir? Örneğin config.xml

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

Bu dosya nerede? Sunucum, iPhone App – Mrug

İlgili konular