<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
<input type='file' onchange="fileFn()" />
<span class="btn" style="display: none;" onclick='downFile()'>下载</span>
<script type="text/javascript">
function fileFn(){
if(event.target.files[0]){
$('.btn').show();
}else{
$('.btn').hide();
}
}
function downFile() {
var filePath = $('input').val();
var filename = filePath.substring(filePath.lastIndexOf("\\") + 1, filePath.length);
var reader = new FileReader();
reader.readAsDataURL($('input')[0].files[0]);
reader.onload = function(evt) {
var content = convertBase64UrlToContent(evt.target.result);
var blob = new Blob([content]);
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
if (!url) {
url = window.webkitURL.createObjectURL(blob);
}
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}
}
}
/* 将 base64 转换位 Uint8Array 对象 Uint8Array 存储 2进制对象的容器*/
function convertBase64UrlToContent(base64) {
var parts = base64.split(';base64,');
var raw = window.atob(parts[1]);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);
for (var i = 0; i < rawLength; i++) {
uInt8Array[i] = raw.charCodeAt(i);
}
return uInt8Array;
}
</script>
</body>
</html>