编码下载功能

Encode Download Function

尝试使用 JavaScript encode 函数下载一组 DICOM (Medical Image) 坐标时。但是,当我们按下将处理保存事件的按钮时,它会打开一个“另存为:”window 要求我们保存文件,但是当我们按下“保存”它说:

Failed - No file

有关问题的更多描述性信息,图像如下:

我们正在使用 CORS (Allow-Control-Allow-Origin) plugin from Google Chrome,这可能意味着函数的错误行为。只是一个问题的想法。

这是请求代码:

function download(data, name, type) {
    var link = document.createElement("a");
    var url = new Blob([JSON.stringify({a: '1'}, null, 4)], {type: type});

    link.setAttribute( 'href', url );
    link.setAttribute( 'download', name );

    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    link.dispatchEvent( event );
}

版本说明

使用URL#createObjectURL:

function download(data, name, type) {
    var url = URL.createObjectURL(new Blob([JSON.stringify({a: '1'}, null, 4)], {type: type}));

    link.setAttribute( 'href', url );
    link.setAttribute( 'download', name );
}

download('data', 'name', 'text/plain');
<a id="link">download</a>