2015-04-25 40 views
0

發送文件後使用peer.js獲取文件類型我使用的WebRTC獲得兩個客戶端的WebRTC

var peer = new Peer(
{ 
    key: "XXX", 
    config: {"XXX": [{ url: "XXXXXXX" }]} 
}); 

我的主要目的是從一個客戶端發送文件相互連通。對於我使用下面的代碼:

$("#box").on("drop", function(e) 
{ 
    e.originalEvent.preventDefault(); 
    var file = e.originalEvent.dataTransfer.files[0]; 
    console.log(file); 
    connection.send(file); 
}); 

在我使用下面的代碼接收端:

conn.on("data", function(data) 
{ 
    if (data.constructor === ArrayBuffer) 
    { 
     var dataView = new Uint8Array(data); 
     var dataBlob = new Blob([dataView]); 
     var reader = new window.FileReader(); 
     reader.readAsText(dataBlob); 

     console.log(reader); 
    } 
} 

現在我的問題是我想要得到的文件類型,這樣我可以把它存正確的格式。我正在使用download.js來保存文件。

回答

1

除了數據中嵌入了某種文件類型/提示(例如ZIP,PDF)之外,不可能從原始數據獲取類型。你應該創建自己的協議來發送文件名。

我所做的是使用通道的協議屬性來設置文件擴展名來傳輸這些類型的元數據信息。

請注意,幾個星期前Chrome並未完全支持發送blob(至少在我的示例應用程序中)。