Tôi đang cố gắng tải tệp lên dịch vụ WCF của mình bằng chỉ sử dụng HTML5 và JavaScript/jQuery. Các dịch vụ WCF là tự lưu trữ từ một dịch vụ Windows thay vì IIS, vì vậy tôi không nghĩ rằng tôi có thể sử dụng php hoặc aspx tải lên xử lý. Các tập tin là nhị phân và không phải là văn bản.Tải tệp lên dịch vụ WCF bằng HTML5 và/hoặc jQuery
Lý tưởng nhất, tôi muốn kết thúc với đối tượng dòng .net nơi tôi có thể ghi tệp cục bộ (phía máy chủ). Tại thời điểm này, tôi chỉ tìm kiếm tệp tải lên rất cơ bản.
Tôi có thể thực hiện giao tiếp JSON hiện tại, nhưng không thể thực hiện bước nhảy vọt lên tệp nhị phân. Hiện nay tôi đến đây và bị mắc kẹt: giao diện
dịch vụ:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "SendFile")]
string SendFile(Stream stream);
Dịch vụ thực hiện:
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,
});
}
Trong giao diện điều khiển Chrome tôi nhận được một lỗi "gọi bất hợp pháp". Tôi có thể sử dụng data: file.name
và điều đó sẽ hoạt động tốt tuy nhiên. Tôi cần phải gửi một dòng nội dung tập tin để tôi có thể xây dựng lại nó ở phía máy chủ.
Bất kỳ ý tưởng nào?