Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从AngularJS向WCF发送文件_Javascript_C#_Angularjs_Wcf - Fatal编程技术网

Javascript 从AngularJS向WCF发送文件

Javascript 从AngularJS向WCF发送文件,javascript,c#,angularjs,wcf,Javascript,C#,Angularjs,Wcf,我在尝试将文件从AngularJS发送到WCF web服务时遇到了一个问题,我收到了很多其他调用,但这一个不会。我在UploadTest中得到的是一个空字符串,如果我没有将其转换为blob,而是按原样发送它并尝试接收一个字节[]或列表,我得到的是空字符串。我做错了什么 [编辑] “stream”对象在JS端确实有一个大小 [编辑二] 如果我转换成字符串而不是Blob,我可以发送短字符串,但不能发送大字符串(大小超过10000) Javascript function selectFile() {

我在尝试将文件从AngularJS发送到WCF web服务时遇到了一个问题,我收到了很多其他调用,但这一个不会。我在
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 };
}