2016-10-02 2 views
0

Я использую функцию http://js.cytoscape.org/#cy.jpg, чтобы получить график в формате jpg.Загрузка файла вместо открытия в javascript

Я использую его с window.location.assign(cy.jpg());, но он открывает изображение, открывающееся на той же вкладке.

Я хочу, чтобы он был загружен вместо открытия на вкладке. Думаю, мне нужно установить content-disposition = attachment или что-то в этом роде.

Редактировать

Я решил ее с

const link = document.createElement('a'); 
link.download = 'filename.png'; 
link.href = cy.png(); 
link.click(); 

однако, он не совместим со всеми браузерами.

+0

Кажется, эта функция дает представление Base64. Одним из способов его загрузки может быть POST значение с enctype = "multipart/form-data". – Tom

ответ

0

Вы можете установить <a> элемент href атрибут к результату cy.png(), установите download атрибут в <a> элемента, вызовите click() на <a> элемента.

В качестве альтернативы, вы можете заменить MIME Типу "image/png" часть data URI возвращенное cy.png() с "application/octet-stream", затем установите location.href для замены data URI

var url = cy.png(); 
    url = url.replace("image/png", "application/octet-stream"); 
    window.location.href = url; 

Смотрите также How to download a file without using <a> element with download attribute or a server?

Смежные вопросы