我是棱角分明的新手,我正在实施ng-file-upload directive。有人可以告诉我如何在上传成功后清除文件输入吗?
我已经在网上尝试过多种解决方案,而我唯一能够使其成功运作的是Jquery:input.replaceWith(input.val('').clone(true));
然而,这似乎只是通过外观清除它,如果我再次尝试提交,我仍然可以上传所谓的已清除文件。
如果有人可以帮助我,那就太好了。
答案 0 :(得分:1)
这样做非常简单。
var uploadInstance = $upload.upload({
url: 'resources/upload',
file: $files // for multiple files
})
progress(function (evt) {
//progress
})
.success(function (data) {
//Success upload
})
.error(function (data) {
//Error upload
});
当您想要重置uploadInstance时,只需调用
即可uploadInstance.abort();
答案 1 :(得分:0)
这对我有用,但它并不是理想的解决方案:
HTML:
<form name="photosForm" ng-submit="upload(photos.file)">
<input type="file"
name="file"
ngf-select
ng-class="{'invalid': photosForm.file.$invalid}"
ng-model="photos.file"
required/>
<button type="submit" ng-disabled="photosForm.$invalid"></button>
</form>
JS:
$scope.upload = function(file) {
Upload(file).then(function() {
$scope.photos = { file: undefined };
}, function(err) {
$scope.errGallery = err.data.message;
});
}
CSS:
.invalid {
color: red;
border-color: red;
}
现在这对我有什么用。它将文件的名称留在文件输入中,但它不再是有效的文件,因为没有文件,它被设置为“未定义”。从某种意义上来说这是好的,即提交按钮将被禁用,并且您无法错误地上传两次相同的文件,而且“无效”#39; css类将被应用为输入是必需的,但没有文件集,它将我的输入边框和文本颜色为红色。