Javascript 从AngularJS向WCF发送文件
我在尝试将文件从AngularJS发送到WCF web服务时遇到了一个问题,我收到了很多其他调用,但这一个不会。我在Javascript 从AngularJS向WCF发送文件,javascript,c#,angularjs,wcf,Javascript,C#,Angularjs,Wcf,我在尝试将文件从AngularJS发送到WCF web服务时遇到了一个问题,我收到了很多其他调用,但这一个不会。我在UploadTest中得到的是一个空字符串,如果我没有将其转换为blob,而是按原样发送它并尝试接收一个字节[]或列表,我得到的是空字符串。我做错了什么 [编辑] “stream”对象在JS端确实有一个大小 [编辑二] 如果我转换成字符串而不是Blob,我可以发送短字符串,但不能发送大字符串(大小超过10000) Javascript function selectFile() {
UploadTest
中得到的是一个空字符串,如果我没有将其转换为blob,而是按原样发送它并尝试接收一个字节[]
或列表,我得到的是空字符串。我做错了什么
[编辑]
“stream”对象在JS端确实有一个大小
[编辑二]
如果我转换成字符串而不是Blob,我可以发送短字符串,但不能发送大字符串(大小超过10000)
Javascript
function selectFile() {
var f = document.getElementById('file').files[0];
var r = new FileReader();
vm.fileName=f.name
r.onload = function (e) {
var dataab = r.result;
var data = new Uint8Array(dataab);
var saveObject = { User: $rootScope.globals.currentUser.id, Name: vm.fileName, Data: data, Fileformat: "CSV", Separator: ";" };
FlowService.UploadTest(data)
.then(function (result) {
vm.uploaded = result.Success;
if (result.Success) {
vm.allFiles.push({ Name: result.FileName, Id: result.Id });
}
});
}
// Read file as binary string
//r.readAsBinaryString(f);
// Read as arrya buffer shall be used when sending binary data. Problem is that we got zero length on wcf with both array and list
r.readAsArrayBuffer(f);
}
function UploadTest(str) {
var url = "../../Service1.svc/UploadTest";
var stream = new Blob(str);
return $http({
method: 'POST',
url: url,
data: { stream: stream }
}).then(handleSuccess, handleError('Error uploading file'));
}
周转基金
您是否尝试发送HttpPostedFile?这可能更容易处理。您是否尝试发送HttpPostedFile?这可能更容易处理。
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
UploadResult UploadTest(String stream);
public UploadResult UploadTest(String stream)
{
return new UploadResult { Message = stream, FileName = "Test", Id = -1, Success = true };
}