相关疑难解决方法(0)

使用HTML5/Javascript生成并保存文件

我最近一直在摆弄WebGL,并且让Collada读者工作了.问题是它很慢(Collada是一种非常冗长的格式),所以我将开始将文件转换为更易于使用的格式(可能是JSON).事实是,我已经有了用Javascript解析文件的代码,所以我也可以将它用作我的导出器!问题在于节省.

现在,我知道我可以解析文件,将结果发送到服务器,并让浏览器从服务器请求文件作为下载.但实际上服务器与这个特定的进程没有任何关系,为什么要让它参与其中呢?我已经在内存中拥有所需文件的内容.有什么方法可以使用纯javascript向用户提供下载吗?(我怀疑它,但不妨问......)

并且要明确:我没有在用户不知情的情况下尝试访问文件系统!用户将提供一个文件(可能通过拖放),脚本将转换内存中的文件,并提示用户下载结果.就浏览器而言,所有这些都应该是"安全"的活动.

[编辑]:我没有提及它,所以回答"Flash"的海报是有效的,但我正在做的部分是尝试强调纯HTML5可以做什么...所以Flash是在我的情况下.(虽然对于任何正在使用"真实"网络应用程序的人来说,这是一个非常有效的答案.)在这种情况下,除非我想要涉及服务器,否则看起来我运气不好.不管怎么说,还是要谢谢你!

javascript html5 download

305
推荐指数
12
解决办法
36万
查看次数

浏览器/ HTML强制从src ="data:image/jpeg; base64 ..."下载图像

我在客户端生成一个图像,我用这样的HTML显示它:

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgM...."/>
Run Code Online (Sandbox Code Playgroud)

我想提供下载生成的图像的可能性.

我如何才能意识到浏览器正在打开文件保存dialoge(或者只是将图像像chrome或firefox一样下载到下载文件夹中),这样用户可以保存图像而无需右键单击并另存为图像?

我更喜欢没有服务器交互的解决方案.所以我知道如果我首先上传Image然后开始下载就可以了.

非常感谢!

html javascript browser html5 image

81
推荐指数
4
解决办法
20万
查看次数

Ajax调用从RESTful服务返回的下载文件

我是AJAX的新手.我正在使用AJAX向服务器发送请求.该服务返回一个文本文件.但是返回数据时不会出现下载框.返回文件的其余服务如下:

@Path("/examples")
public class ExampleCodesRest {


    @POST
    @Path("/getcode")
    @Produces(MediaType.TEXT_PLAIN)
    public Response getCodes(@Context ServletContext context){

        String in=context.getRealPath("/WEB-INF/reports.jrxml");
        File file=new File(in);

        ResponseBuilder response = Response.ok((Object) file);
        response.header("Content-Disposition",
            "attachment; filename=\"file_from_server.log\"");
        return response.build();

    }
}
Run Code Online (Sandbox Code Playgroud)

我的AJAX调用如下:

 $('a#link').click(function(event){
    event.preventDefault();
    $.ajax({
        url: '/reports/rest/examples/getcode',
        type: 'POST'
    });
}); 
Run Code Online (Sandbox Code Playgroud)

没有AJAX,文件下载成功.使用AJAX,它不会下载文件.请咨询.

ajax rest jquery

12
推荐指数
1
解决办法
2万
查看次数

强制下载使用JavaScript中的FileWriter创建的blob

HTML5引入了FileWriter类.有了这个课程,你可以制作Blob.(文件是Blob的扩展.)使用JavaScript,您可以创建Blob,例如使用dataURL显示它.

例:

var bb = new BlobBuilder();
bb.append('some text')
var blob = bb.getBlob('text/plain');

var fr = new FileReader();
fr.onload = function(e) {
 document.location = this.result; // voila the dataURL
}
fr.readAsDataURL(blob);
Run Code Online (Sandbox Code Playgroud)

但这还不够好:)我希望下载新创建的(文本)文件.不能在相同或单独的窗口中打开.

有办法吗?必须有.怎么样?

(此讨论已存在于Google Chrome组中)

更新
文件API已更改,因为规格已更改(或某些内容!?).Webkit打破了向后兼容性BlobBuilder,现在称之为WebKitBlobBuilder.同样的例子在jsFiddle上有所不同

更新
创建Blob现在再次以不同的方式工作(不再append()):

blob = new Blob(['some text'], {type: 'text/plain'});
Run Code Online (Sandbox Code Playgroud)

javascript html5 filewriter

10
推荐指数
1
解决办法
6257
查看次数

标签 统计

html5 ×3

javascript ×3

ajax ×1

browser ×1

download ×1

filewriter ×1

html ×1

image ×1

jquery ×1

rest ×1