想要下载文件,"保存文件夹对话框'应弹出以选择保存文件的文件夹。
我尝试使用window.location
,window.location.assign
,widow.open
个函数。
一切都会打开一个新的页面!并且无法看到任何"保存文件夹对话框"突然出现了!
下载文件名扩展名为.cfg,文件可以是二进制文件或Json文件(文本文件)。如果文件是二进制文件还是文本文件会有什么区别吗?
$( document ).ready(function() {
$("#DownloadFile").click(function() {
// // hope the server sets Content-Disposition: attachment!
var urlData= window.location.protocol + "//" + window.location.host + "/" + "download/testdown.cfg";
alert("download file: " + urlData);
retval = fileExists(urlData);
if(retval) {
alert("file exists !!");
window.location = 'download/testdown.cfg';
// window.location.assign(urlData);
// window.open(urlData, 'Download');
}else{
alert("File not exists !");
}
});
function fileExists(url) {
alert(" url : " + url);
if(url){
alert(" url : " + url);
var req = new XMLHttpRequest();
req.open('HEAD', url, false);
req.send();
// return req.status==200;
return true;
} else {
return false;
}
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-condensed table-bordered table-striped volumes tabcenter"
style="align:center; margin:5px; width:98%">
<tbody>
<tr>
<td>
<div class="row">
<h1>Choose File Type</h1>
<label class="radio-inline">
<input name="radioGroup" id="radio1" value="option1" type="radio"> Binary Data
</label>
<label class="radio-inline">
<input name="radioGroup" id="radio2" value="option2" checked="" type="radio"> Json Data
</label>
</div>
</td>
<td >
<button type="submit" id="DownloadFile" >Download!</button>
</td>
</tr>
</tbody>
</table>
&#13;
答案 0 :(得分:1)
出于安全考虑,浏览器中的JavaScript不允许访问用户计算机。所以你只需要以标准方式制定方法。按钮向服务器发送请求,它返回正确的标题,将文件保存在特殊目录中。也阅读了这个答案。
How can I read the client's machine/computer name from the browser?
同时阅读这个答案。