相关疑难解决方法(0)

如何使用Django REST Framework返回生成的文件下载?

我需要将生成的文件下载作为Django REST Framework响应返回.我尝试了以下方法:

def retrieve(self, request, *args, **kwargs):
    template = webodt.ODFTemplate('test.odt')
    queryset = Pupils.objects.get(id=kwargs['pk'])
    serializer = StudentSerializer(queryset)
    context = dict(serializer.data)
    document = template.render(Context(context))
    doc = converter().convert(document, format='doc')
    res = HttpResponse(
        FileWrapper(doc),
        content_type='application/msword'
    )
    res['Content-Disposition'] = u'attachment; filename="%s_%s.zip"' % (context[u'surname'], context[u'name'])
    return res
Run Code Online (Sandbox Code Playgroud)

但它返回一个msword文档json.

如何让它开始下载为文件?

python django ms-word download django-rest-framework

13
推荐指数
5
解决办法
1万
查看次数

提示使用node.js和node-csv-parser(节点模块)弹出下载csv文件

最近我开始使用node.js. 在我的一个项目中遇到一个要求时,我遇到了一个问题,我应该能够动态地将一些数据写入csv文件并让它作为弹出窗口提示为用户下载(带有保存和取消选项 - 正如我们通常的那样)看到).谷歌搜索了一段时间后,我决定使用csv npm模块https://github.com/wdavidw/node-csv-parser.我能够将数据写入文件并使用此模块保存.我想提示弹出一个用于保存此文件的/不保存文件.

我的代码看起来像这样:

    // Sample Data 
    var data = [["id", "subject1", "subject2", "subject3"], ["jack", 85, 90, 68], ["sam", 77, 89, 69]]

    // Server Side Code    
    var csv = require('../../node_modules/csv');            
    var fs = require('fs');

    createCSV = function(data, callback) {
        csv().from(data).to(fs.createWriteStream('D:/test.csv')) // writing to a file           
    }

    // Client side call sample
    $("#exportToCSV").click(function() {
        callToServer.createCSV(data);
       return false;
    });
Run Code Online (Sandbox Code Playgroud)

就编写csv文件而言,这是有效的.

  • 我想立即提示此文件为用户下载.
  • 如果可以在不保存文件的情况下完成,那就太棒了.
  • 如何像在PHP中一样设置内容类型和内容处置

任何帮助是极大的赞赏.-谢谢

csv export node.js export-to-csv

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

从IE 11中的HTTP URL下载blob

我的页面生成如下URL:blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f,blob具有文件数据.我将这个作为文件下载到IE 11以外的每个浏览器中.如何在IE 11中下载此blob?新选项卡打开并持续刷新.

var file = new Blob([data], { type: 'application/octet-stream' });
var reader = new FileReader();
reader.onload = function (e) {
    var text = reader.result;
}
reader.readAsArrayBuffer(file);
var fileURL = URL.createObjectURL(file);
var filename = fileURL.replace(/^.*[\\\/]/, '');
var name = filename + '.doc';

var a = $("<a style='display: none;'/>");
a.attr("href", fileURL);
a.attr("download", name);
$("body").append(a);
a[0].click();
a.remove();
Run Code Online (Sandbox Code Playgroud)

javascript jquery blob angularjs

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