2014-01-19 22 views
0

我試圖讓我的電腦將音樂文件發送到我的應用程序(Windows Phone 8)。我用的插座,以顯示我的計算機上的HTML文件,在那裏我可以選擇一個文件並上傳:在Windows Phone中從套接字輸入流讀取音頻文件

Upload music file:<br /> 
<input type="file" id="musicfile"/><br /> 
<input type="button" onclick="sendFile()" value="send"/> 
<script type="text/javascript"> 
    function sendFile() { 
    // get file 
    var fileInput = document.getElementById('musicfile'); 
    var files = fileInput.files; 

    // make request 
    var xmlhttp = new XMLHttpRequest(); 

    // response 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     alert("uploaded file"); 
     } 
    } 

    // send data 
    xmlhttp.open("POST","upload",true); 
    xmlhttp.send(files[0]); 
    } 
</script> 

我讀像這樣的FILEDATA:

// handle request 
private async void HandleRequest(StreamSocket socket) 
{ 
    //Initialize IO classes 
    DataReader reader = new DataReader(socket.InputStream); 
    reader.InputStreamOptions = InputStreamOptions.Partial; 

    // read request 
    var stringHeader = await reader.LoadAsync(4); 
    if (stringHeader == 0) 
    { 
     // disconnected 
     return; 
    } 

    // get length 
    int length = reader.ReadInt32(); 

    // initiate data 
    byte[] data = new byte[length]; 

    // load and read data 
    uint bytes = await reader.LoadAsync((uint)length); 
    reader.ReadBytes(data); 
} 

試圖當我得到一個OutOfMemoryException異常創建byte []數據。沒有驚人的長度= 1215263604.

我不知道它是如何可能是大,音樂文件是7.68MB。 請求的內容類型是「音頻/ mp3」。

回答

0

爲什麼不使用Content-Length頭來獲取wp應用程序中的大小?如果返回的值不正確,請在服務器中進行更改,以使標頭值可用。

OutOfMemoryException錯誤將不會出現。

相關問題