jquery上传文件

1
2
3
4
5
6
7
8
<input type="text" onfocus="this.blur()" id="choiceInput" placeholder="请选择需要上传的文件">

<!-- 上传excel -->
<input type="file" accept=".xls, .xlsx" id="hiddenInput" style="display: none;">
<!-- 上传图片 -->
<input type="file" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" id="hiddenInput" style="display: none;">

<button id="uploadBtn">上传</button>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
$('#choiceInput').on('click', function () {
$('#hiddenInput').click(); // 触发隐藏的file input
});

$('#hiddenInput').on('change', function () {
$('#choiceInput').val($(this)[0].files[0].name); // 显示上传文件的名称

// 如果没有上传按钮,则在此处开始上传
});

var uploadFlag = false; // 上传flag,防止多次点击
$('#uploadBtn').on('click', function () {
if (uploadFlag) return;
uploadFlag = true;

var fileName = $('#choiceInput').val();
var file = $('#hiddenInput')[0].files[0];
if (fileName == ""){
alert("您还没有选择excel文档");
return ;
}
// 判断上传的文件类型(判断excel)
if (fileName.substring(fileName.length - 4) != ".xls" && fileName.substring(fileName.length - 5) != ".xlsx") {
alert("仅支持上传excel文档");
return ;
}
// 判断上传的文件类型(判断图片)
if(!/image\/\w+/.test(file.type)){
alert("仅支持上传图片");
return ;
}

var formData = new FormData(); // 注意formData存在兼容性,IE10开始支持
formData.append("adId", '10001');
formData.append("type", '1');
formData.append("file", file);

$.ajax({
url: "saveidbyfile.vpage",
type: "POST",
data: formData,
processData: false,
contentType: false,
async: true,
timeout: 10 * 1000,
success: function (data) {
uploadFlag = false;
if (data.success) {
alert('上传成功')
} else {
alert('上传失败:' + data.info);
}
},
error: function () {
uploadFlag = false;
}
});
});