我需要浏览器下载图像文件,就像点击Excel工作表一样.
有没有办法只使用客户端编程?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.10.2.js">
$(document).ready(function () {
$("*").click(function () {
$("p").hide();
});
});
</script>
</head>
<script type="text/javascript">
document.onclick = function (e) {
e = e || window.event;
var element = e.target || e.srcElement;
if (element.innerHTML == "Image") {
//someFunction(element.href);
var name = element.nameProp;
var address = element.href;
saveImageAs1(element.nameProp, element.href);
return false; // Prevent default action and stop event propagation
}
else
return true;
};
function saveImageAs1(name, adress) {
if (confirm('you wanna save this image?')) { …Run Code Online (Sandbox Code Playgroud) 如果我们在nodeJS服务器上,我们可以编写一个头,设置一个mime类型,并发送它:
res.header("Content-Disposition", "attachment;filename="+name+".csv");
res.type("text/csv");
res.send(200, csvString);
Run Code Online (Sandbox Code Playgroud)
并且由于标题,浏览器将为命名的csv文件创建下载.
当在浏览器中生成有用的数据时,将其置于CSV文件中的一种解决方案是使用ajax,将其上传到服务器,(可选择将其保存在那里)并让服务器使用这些头将其发送回csv在浏览器下载回来.
但是,我希望100%的浏览器解决方案不涉及与服务器的乒乓.
所以在我看来,可以打开一个新窗口并尝试使用META标记等效设置标题.
但是这在最近的Chrome中对我不起作用.
我确实得到一个新窗口,它包含csvString,但不作为下载.
我想我希望在底部标签中下载或在底部标签中下载一个空白的新窗口.
我想知道元标记是否正确或是否还需要其他标记.
有没有办法让这项工作没有将其强加给服务器?
用于在浏览器中创建CSV的JsFiddle(不工作 - 输出窗口但无法下载)
var A = [['n','sqrt(n)']]; // initialize array of rows with header row as 1st item
for(var j=1;j<10;++j){ A.push([j, Math.sqrt(j)]) }
var csvRows = [];
for(var i=0,l=A.length; i<l; ++i){
csvRows.push(A[i].join(',')); // unquoted CSV row
}
var csvString = csvRows.join("\n");
console.log(csvString);
var csvWin = window.open("","","");
csvWin.document.write('<meta name="content-type" content="text/csv">');
csvWin.document.write('<meta name="content-disposition" content="attachment; filename=data.csv"> ');
csvWin.document.write(csvString);
Run Code Online (Sandbox Code Playgroud) 在Firefox和Chrome中,此链接属性"download = img.jpg"工作正常,并显示下载窗口而不是新的选项卡或页面.
<a href="img.jpg" download="img.jpg">Download Image</a>
Run Code Online (Sandbox Code Playgroud)
但在Safari和IE中,这个链接给了我一个新的页面.
那么使用Safari和IE浏览器处理这个问题的简单而有效的工作流程是什么?
我需要与此脚本相关的帮助,以使该脚本可以下载网页上的所有图像。它可以很好地下载第一个图像,然后当Google Chrome浏览器尝试下载其余图像时,显示“无文件”。一些帮助将不胜感激。我通过将其粘贴到javascript控制台中来运行此代码。谢谢!
var images = document.getElementsByTagName('img');
var srcList = [];
var i = 0;
setInterval(function(){
if(images.length > i){
srcList.push(images[i].src);
var link = document.createElement("a");
link.id=i;
link.download = srcList;
link.href = srcList;
link.click();
i++;
}
},1500);
Run Code Online (Sandbox Code Playgroud) 在页面上,有一个按钮.单击该按钮时,会显示一个下拉列表.下拉列表包含图像.问题是在用户单击按钮之前不会获取图像.
$("#my_button").click(function(){
$("#my_dropdown").html("<img src=\"http://mysite.com/image.jpg\" />");
});
Run Code Online (Sandbox Code Playgroud)
我想在页面加载时获取图像,以便在用户单击下拉列表时准备好.我怎样才能做到这一点?我以为我可以将图像插入带有display:noneset 的页面,所以它会进入缓存,或者有什么方法可以在jQuery中加载文档时加载?
这适用于Chrome扩展程序,如果它有任何区别.我想我可以将图像放在扩展中(这会更快),但我仍然很好奇是否可以使用JS加载图像.
谢谢,凯文
我是一个新的bie,我希望文件在用户点击下载选项时下载它在浏览器中打开而不是下载选项如save as/open.Here我引用了相同的以及他们建议使用的每个地方
Response.AddHeader("Content-disposition", "attachment; filename=" + Name);
Run Code Online (Sandbox Code Playgroud)
但我不知道在哪里以及如何使用.实际上我从查询中获取了url值,返回url作为存储在arraylist中的bean的对象之一(此列表还有url的其他值).我在arraylist中的url值就像bean一样
type=.pdf
release date=12/3/08
name=hai.pdf
url=/files/en/soft/doc/docs/hai.pdf
Run Code Online (Sandbox Code Playgroud)
我在我的控制器中得到这个数组列表
ArrayList details = dao.getdetails(Bean.getNumber());
Run Code Online (Sandbox Code Playgroud)
并将此传递到视图中
Map.put("details", details);
modelView.setViewName("details_list");
modelView.addAllObjects(Map);
return modelView;
Run Code Online (Sandbox Code Playgroud)
在jsp中,我迭代了这个数组列表并像这样显示内容
Type name Release Date
.txt hai.pdf May 21st 2012 Download
.txt hello.txt May 21st 2012 Download
Run Code Online (Sandbox Code Playgroud)
为了下载,我在jsp中使用了这样的
<td colspan="2" valign="top">
<a href="${details.Url}"/>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a>
</td>
Run Code Online (Sandbox Code Playgroud)
点击下载在浏览器中打开它.我需要下载它.请帮助我如何使用或处理
response.setHeader("Content-Disposition", "attachment;");
Run Code Online (Sandbox Code Playgroud)
在哪里添加上面的我的要求或如果我也可以使用任何java脚本.请帮助我解决上述问题.
我目前正在试图弄清楚如何将我的HTML表单数据输出到XML文件.这是我过去几天一直在玩的一个想法,以便创建一个autounattended.xml文件,用于Windows 7安装.
目前我的HTML如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Windows 7 Answer File Generator</title>
</head>
<body>
<form>
<h1>Windows 7 Answer File Generator</h1>
<h2>General Settings</h2>
<table>
<tr>
<td width="200px">Skip product key:</td>
<td>
<select name="SkipProductKey">
<option value="Yes" selected="selected">Yes</option>
<option value="No">No</option>
</select>
</td>
</tr>
<tr>
<td width="200px">Skip automatic activation:</td>
<td>
<select name="SkipAutoActivation">
<option value="Yes" selected="selected">Yes</option>
<option value="No">No</option>
</select>
</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这只是我一直在努力的片段.所以,我想知道是否可以使用javascript根据选择值创建XML文件,并询问用户在哪里保存xml文件.有关这方面的任何信息将是一个很大的帮助.
在我的网站上,我有一个jQuery脚本,如果单击下载按钮,它将在新窗口中打开所需的图像。
我的问题是,当您单击图像将自动保存而不在新窗口中打开的按钮时,如何制作此脚本。
我的代码:
<script type="text/javascript">
$(document).ready(function (){
$('#download-btn').click(function(){
var size = $('#size').val();
window.open(size);
});
})
</script>
Run Code Online (Sandbox Code Playgroud) 我使用了链接的下载属性来下载文件.但是,当我从另一个方法触发click事件时,它不会下载该文件.为什么会这样?我已检查是否触发了click事件.这是我对jsfiddle的测试 - http://jsfiddle.net/6Fkb5/1/
<a href="#" download="https://www.dropbox.com/s/shd31hvnsn0fd0v/Getting%20Started.pdf" id="testdownload">Test Download</a>
var count=0;
$('#testdownload').on('click', function(){
count++;
$('#log').append('<li>Click triggered ' + count + ' times</li>');
});
$('#testdownload').trigger('click');
Run Code Online (Sandbox Code Playgroud)