我想僅使用HTML5和JavaScript/jQuery將文件上傳到我的WCF服務。 WCF服務是由Windows服務而不是IIS託管的,所以我不認爲我可以使用php或aspx上傳處理程序。這些文件是二進制文件而不是文本。使用HTML5和/或jQuery將文件上傳到WCF服務
理想情況下,我想結束一個.net流對象,我可以在本地寫入文件(服務器端)。在這一點上,我只是在尋找非常非常基本的文件上傳。
我目前可以做JSON通信,但不能跨越到二進制文件。目前我遠是這個並堅持:
服務接口:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "SendFile")]
string SendFile(Stream stream);
服務實現:
public string SendFile(Stream stream)
{
// this works for strings, but i want a FileStream
StreamReader reader = new StreamReader(stream);
string data = reader.ReadToEnd();
return data;
}
HTML:
<input type="file" id="fileInput" onchange='sendFile();' />
的JavaScript/jQuery的:
function sendFile() {
submitButton.disabled = true; ;
setInnerText("sending file...");
var file = document.getElementById('fileInput').files[0];
var url = "http://10.0.1.9:8732/RainService/SendFile";
$.ajax({
url: url,
type: "POST",
data: file,
});
}
在Chrome控制檯我得到一個 「非法調用」 錯誤。我可以使用data: file.name
,然而這可以正常工作。我需要發送文件內容的流,以便我可以在服務器端重建它。
任何想法?