我正在使用jquery fileupload将文件发布到url。在我的控制器中,我有类似这样的东西来生成要发布到的URL。
uploadService.getUploadURL($scope.projectId).then(function (url) {
$scope.uploadUrl = url.uploadUrl;
});
然后在我看来,我要填写数据网址
<span id="btn-browse" class="btn btn-success btn-file">Browse<input type="file" name="file" data-url="{{uploadUrl}}" multiple upload /></span>
我遇到的问题是,当我发布文件时,该文件最终使用URL http:// localhost /%7B%7BuploadUrl%7D%7D代替,因为它没有替换{{uploadUrl}}。
我知道这很可能是非常基本的,我缺少一些简单的东西。如果有人可以帮忙解决这个问题或为我指出正确的方向,我将不胜感激!
**根据以下要求提供上传代码**
从上传控制器
$scope.upload = function () {
uploadService.upload();
}
从上传服务
upload: function () {
$.each(_files, function (ix, file) {
file.submit();
});
this.clear();
}
还值得一提的是,jquery fileupload是在如下指令中实现的:
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
即使您已经创建了指令,当创建文件上传时,URL仍未加载。
您可以做的是在watch中添加watch uploadUrl
,如果它已更改,则使用jquery创建文件上传器。
$scope.watch('uploadUrl',function(newValue, oldValue ){
if(newValue!==oldValue){
setTimeout(function(){
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
});
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句