HTML5およびJavaScript/jQueryのみを使用してWCFサービスにファイルをアップロードしようとしています。 WCFサービスは、IISではなくWindowsサービスからホストされているため、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,
});
}
私は "違法呼び出し" エラーが発生します。私はdata: file.name
を使うことができましたが、それはうまくいくでしょう。私はサーバー側で再構築できるように、ファイルの内容のストリームを送信する必要があります。
アイデア?