实现过程就是用一个按钮绑定隐藏的input文件框,点击该按钮的时候触发文件input框
首先点击按钮执行方法:selectFile1(),然后在js中的selectFile1方法中执行这个$("#file1").trigger(“click”);,这个是引发文件input框,然后执行上传方法
1、html
<form id="attachments1" enctype="multipart/form-data" class="form-horizontal" novalidate="novalidate">
<div class='form-body'>
<div class='form-group'>
<!--<label class="control-label col-md-1">附件上传:</label>-->
<div id="attachmentInputs1" class="col-md-3">
<input name="attachment1" type="file" id = "file1" onchange="angular.element(this).scope().check1()" class="form-control input-attachment" multiple="multiple" ng-class="button-primary" style="width:180px;display:none;"/>
<button id="file3" type="button" ng-click="selectFile1()" ng-class="button-primary"
class="button-primary"> MBL上传
</button>
</div>
</div>
</div>
</form>
2、js
$scope.selectFile1 = function () {
$("#file1").trigger("click");
}
$scope.check1 = function () {
var doc = document.getElementById('file1');
for(var i=0;i<doc.files.length;i++){
var name = doc.files[i].name;
var hz = name.substring(name.lastIndexOf(".")+1);
if(hz!="pdf" && hz!="jpg"){
GillionMsg.alert($scope.sysFileInfoCommon.tips, "请选择正确的文件类型!", null);
return false;
}
}
var formData = new FormData();
//注入 name=file
var files = $("#attachmentInputs1 input[type='file']");
for (var i = 0; i < files[0].files.length; i++) {
formData.append("attachment", files[0].files[i]);
}
//执行上传
$.ajax({
url:$oam.ctx + '/dc/mblFileUpload1',
type: "post",
data: formData,
processData: false,
contentType: false,
cache: false,
success: function (data) {
},
});
};