我必须下载一个file (pdf/zip/txt ...)使用jquery.
我试过了什么?
<a href="abc.pdf">click</a>
Run Code Online (Sandbox Code Playgroud)
当我点击链接时,文件在浏览器中打开.
使用jquery ...
$('a').click(function(e)
{
e.preventDefault();
var link = $(this).attr('href');
window.location = link;
});
Run Code Online (Sandbox Code Playgroud)
这也导致在浏览器中打开文件.但我想下载它不在浏览器中显示.
在PHP我们可以使用header('Content-Disposition: attachment; filename="test.mp3"');
但我必须只使用 jquery/javascript..
此SO答案详细说明了如何通过Chrome扩展程序下载文件,但我使用的是内容脚本,该内容脚本对Chrome API的访问权限有限.换句话说,我无权访问该chrome.downloads对象.我也试过这个vanilla JS解决方案,但它对我不起作用.有没有人有内容脚本的解决方案或知道为什么第二个解决方案不起作用?
我在JQuery中有一堆存储在数组中的JSON对象.有没有一种简单的方法可以将它们重写为JSON文本文件到我的本地机器?
谢谢!
让我先提供一些背景信息.我正在开发一个与Microsoft SharePoint 2010集成的系统,不是真正的SharePoint作为系统,而是它的文件系统,文档库等的虚拟表示...用户将文件上载到SharePoint,我的系统监视这些文件并对它们编制索引进入搜索引擎(包括文件内容).用户可以通过REST接口与该系统进行交互.
我创建了一个REST接口来为用户提取一个文件,该文件对应于我的搜索引擎中的某个条目.这使用绝对网络路径作为其标识符.一个例子是//corporateserver//library1/filex.docx.由于原始策略相同,但我无法加载此文件客户端.因此,我试图通过服务器传输它.
我使用JAX-RS传输数据取得了一些成功,但是,我遇到了以下困难:
用户希望下载的文件可以是多种内容类型,其中大多数是微软办公室格式.我查看了已注册的MIME类型列表,并且遇到了application/msword或者application/vnd.ms-powerpoint
我的问题:是否有包含Microsoft Office文件的内容类型?如果没有,那么如何继续将正确的内容类型与正在请求的文件进行匹配.如果要为内容类型的word文件服务,会发生什么text/plain?
任何有关该主题的帮助将不胜感激.
编辑
我用来传输数据的代码:
package com.fujitsu.consensus.rest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.commons.io.IOUtils;
import org.codehaus.jettison.json.JSONException;
@Path("/fetcher")
public class FetcherService {
@GET
@Path("/fetch")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response fetchFile(@QueryParam("path") String path)
throws JSONException, IOException {
final File file = new File(path);
System.out.println(path);
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream …Run Code Online (Sandbox Code Playgroud) 在我的代码中,我想在下载pdf之后重定向到thankyou.html页面,以便我在该方法中创建download()我编写代码
protected void download()
{
try
{
string path = Server.MapPath("pdf/myDoc.pdf");
System.IO.FileInfo file = new System.IO.FileInfo(path);
if (file.Exists)
{
string strURL = path;
WebClient req = new WebClient();
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment;filename=\"myDoc.pdf\"");
byte[] data = req.DownloadData(path);
Response.BinaryWrite(data);
Response.Flush();
Response.Redirect("thankyou.html");
}
else
{
Response.Write("This file does not exist.");
}
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('" + ex.Message.ToString() + "');", true);
}
}
Run Code Online (Sandbox Code Playgroud)
但它显示我无法评估表达式,因为代码已优化或本机框位于调用堆栈之上且当Response.Redirect("thankyou.html"); 在外面它显示我错误在HTTP标头发送后无法重定向. 你能指导我如何重定向到另一个页面吗?
我有文件对象
var File = new File(["aa"], "dek_iv");
Run Code Online (Sandbox Code Playgroud)
我可以使用javascript或jquery下载这个吗
嗨,大家好我使用一个简单的HTML链接来保存生成的.xml文件
<a href="./serverfile.xml">Save your file</a>
Run Code Online (Sandbox Code Playgroud)
问题是,当我点击上面的链接时,浏览器不是打开文件对话框将文件保存在我的本地Windows计算机中,而是像网页一样打开它.
这个问题有什么解决方案吗?也许是一些JavaScript或者什么....也可以在定义的文件夹路径中打开文件对话框?
非常感谢 !
javascript ×3
jquery ×3
html ×2
asp.net ×1
c# ×1
file ×1
java ×1
jax-rs ×1
json ×1
mime-types ×1