我正在尝试添加将zip文件上传到服务器的功能。客户端是用AngularJS构建的,服务器端是C#ASP.NET,但我无法使它工作。ng-file-upload with WebService
我的服务器端代码如下所示:
[System.Web.Script.Services.ScriptService]
public class xyz : System.Web.Services.WebService
{
// Other WebMethods that work fine
[WebMethod]
public string UploadFile(byte[] file, string filename)
{
// do whatever
}
}
而且我使用NG文件上传到尝试做实际的上传。该HTML看起来像:
<form>
<div class="form-group">
<label class="control-label h3" for="zipFile">Zip File</label>
<input class="form-control my-file" type="file" ngf-select ng-model="zipFile" id="zipFile" name="zipFile" accept=".zip" required />
</div>
<button class="btn btn-default" ng-click="submit()">Submit</button>
</form>
和JavaScript在我的控制器看起来是这样的:
FileLoadController.$inject = ['$scope', 'Upload'];
function FileLoadController($scope, Upload) {
var vm = this;
vm.scope = $scope;
vm.scope.submit = function() {
if (vm.scope.zipFile) {
vm.scope.upload(vm.scope.zipFile);
}
}
vm.scope.upload = function (file) {
Upload.upload({
url: 'xyz.asmx/UploadFile',
data: { 'file': file, 'filename': file.name },
},
})
.then(function (response) {
alert(response);
});
}
}
Upload.upload被调用,但绝不会在执行服务器端的UploadFile方法。
这可能是简单的,但我做错了什么?有没有更好的或更容易的方法来做到这一点?
谢谢。