Vb.net angularjs将文件发布到web api

Vb.net angularjs将文件发布到web api,vb.net,angularjs,asp.net-web-api,Vb.net,Angularjs,Asp.net Web Api,我有一个用于将文件上传到web api的角度函数 $scope.uploadFile = function () { var file = $scope.file; console.log("file: " + file); var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener(

我有一个用于将文件上传到web api的角度函数

$scope.uploadFile = function () {
    var file = $scope.file;
    console.log("file: " + file);
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", uploadProgress, false);
    xhr.addEventListener("load", uploadComplete, false);
    xhr.addEventListener("error", uploadFailed, false);
    xhr.addEventListener("abort", uploadCanceled, false);
    xhr.open("POST", uri);
    xhr.setRequestHeader("Content-Type", "multipart/form-data");
    xhr.setRequestHeader("X-File-Name", file.fileName);
    xhr.setRequestHeader("X-File-Size", file.fileSize);
    xhr.setRequestHeader("X-File-Type", file.type);
    $scope.progressVisible = true;
    xhr.send(file);
}

function uploadProgress(evt) {
    $scope.$apply(function () {
        if (evt.lengthComputable) {
            $scope.progress = Math.round(evt.loaded * 100 / evt.total);
        }
    })
}

function uploadComplete(evt) {
    /* This event is raised when the server send back a response */
    alert(evt.target.responseText);
}

function uploadFailed(evt) {
    alert("There was an error attempting to upload the file.");
}

function uploadCanceled(evt) {
    $scope.$apply(function () {
        $scope.progressVisible = false;
    })
    alert("The upload has been canceled by the user or the browser dropped the connection.");
}
代码可以在这里找到

我需要一个web api控制器来管理文件发布,我如何读取它? 是否可以使用PostValue而不是task async? 服务器端我获取文件,读取内容,查询数据库并返回JSON响应 谢谢