我正在使用\+
使用角度js进行上传控制。每次我点击浏览,我都不想看到以前选择的文件。默认情况下,这似乎保留。可以通过编写指令来实现吗?每次点击浏览都能触发吗?
我正在使用bootstrap实现来替换默认的浏览按钮。
input type="file"
答案 0 :(得分:35)
这是最简单的方法,不使用任何指令或复杂的代码。
Browse <input type="file" ng-click="clear()"
在您的控制器中
$scope.clear = function () {
angular.element("input[type='file']").val(null);
};
答案 1 :(得分:0)
here is alternate way to clear input file type.
HTML ->>
`<span class="useBootstrap btn btn-default btn-file">
Browse <input type="file" ng-if="clearBtn" />
</span>`
Js ->>
`//initial loading
$scope.clearBtn = true;
// after submit / on reset function
$scope.submitform = function(){
//submit logic goes here;
//onsuccess function
$scope.clearBtn = false;
$timeout(function(){
$scope.clearBtn = true;
});
}`
答案 2 :(得分:0)
如果使用fileUpload指令,则可以直接从HTML清除上传的文件数据。
e:g-
指令-
app.directive('fileModel', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.fileModel)
var modelSetter = model.assign
element.bind('change', function () {
scope.$apply(function () {
modelSetter(scope, element[0].files[0])
})
})
}
} }])
html代码-上传文件输入字段
<button ng-disabled="!myFile" class="btn btn-primary btn-rounded btn-ef btn-
ef-5 btn-ef-5a mb-10 "
ng-click="uploadFile(myFile);myFile=''">Upload button
</button>
<button class="btn btn-danger btn-rounded btn-ef btn-ef-5 btn-ef-5a mb-10 "
ng-click="myFile=''">Clear
</button>
致电http服务
var fd = new FormData()
fd.append('file', file) //File is from uploadFile(myFile)
$http.post(url, fd, {
transformRequest: angular.identity,
headers: {
'Content-Type': undefined,
'sessionId': sessionId,
'project': userProject
}
})
答案 3 :(得分:0)
您可以轻松完成此操作,下面是一个示例:
<input type="file" accept="image/jpeg" id="fileInp" required file-input="files" >
///在我的代码中,其余的都是从服务器发送响应时发生的
$http.post('upload.php', form_data,
{
transformRequest: angular.identity,
headers: {'Content-Type': undefined,'Process-Data': false}
}).success(function(response){
$scope.response_msg=response;
if($scope.response_msg=="File Uploaded Successfully")
{
$scope.IsVisibleSuccess = $scope.IsVisibleSuccess = true;
}
else
{
$scope.IsVisibleFailed=$scope.IsVisibleFailed=true;
}
$scope.img_name='';
$("input[type='file']").val('');
});