解决谷歌浏览器重复上传同一文件失败的问题

https://blog.csdn.net/jufeng9318/article/details/51899435

http://www.cnblogs.com/laozuan/p/4660405.html

谷歌浏览器,file input出于安全角度,用户异步上传完毕文件后选择相同文件时,不会触发change,因为在这种情况下,我们没有办法使value(也就是文件路径)发生变化。

解决方法是,每次选完文件,就重建此元素,这样值自然是空的,因为clone不带值,这样就是一个全新的file input,每一次选择,自然各种正常。

HTML代码

<!--附件上传-->
<div class="view-item file-list-view">
	<div class="text-title">
	    <span class="font-16">附件上传
		<i class="eg eg-circle-add font-12 pointer" οnclick="openFileInput();">
			<input id="orgfileUpload" type="file" accept="application/msword,application/x-ppt,application/x-xls,application/pdf,text/plain" style="display: none;" οnchange="angular.element(this).scope().getFile()"/>
		</i>
	    </span>
	</div>
	<div class="file-list font-14">
		<div class="list-item" ng-repeat="attachment in affairsNoticeInfo.affairsNoticeAttachment">
			<span><i class="eg eg-link"></i>{{attachment.attcFileName}}.{{attachment.attcContentType}}<i class="eg eg-circle-remove pointer" ng-click="deleteAttachment(attachment,$index);"></i></span></div>
	</div>
</div>
JS代码
/*附件上传*/
	$scope.getFile = function(){
        var file = $("#orgfileUpload")[0].files[0];
        if(file.size > 0){
        	$scope.uploadFile(file);
        };     
	};
    $scope.uploadFile = function(file){
        var form = new FormData();
        form.append('upfile', file);
        $http({
            method: 'POST',
            url: api_prefix+'/notice/attachment/fileUpload',
            data: form,
            headers: {'Content-Type': undefined},
            transformRequest: angular.identity
        }).success(function (data) {
	    	if(data.exchangeStatus == 1){
	    		/*解决谷歌浏览器重复上传相同文件不触发change事件的问题*/
	    		var file = $("#orgfileUpload").val("");
	    		layer.msg('上传成功!', {
				});
	    		$scope.affairsNoticeInfo.affairsNoticeAttachment.push(data.data);
	    	}else if (data.exchangeStatus == 0){
	    		layer.msg('后台服务器运行超时!', {
				});
	    	}
        }).error(function(data, status, headers, config){
 	    	if(status == 401){
 	    		layer.msg('验证码错误!', {
 				});
 	    	}else{
 		    	layer.msg('服务器错误!', {
 		    	});
 	    	}
 	    });
    }
function openFileInput(){
	$("#orgfileUpload")[0].click();
};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值