Ссылка для скачивания
Иногда передо мной стоит задача сделать ссылку, которая должна открывать системный диалог для сохранения файла. Браузеры достаточно умны, чтобы открывать такой диалог при скачивании бинарников вроде архивов или EXE-файлов. Но что делать, если я хочу скачивать картинки или какие-нибудь видео? Именно скачивать, не открывать для просмотра.
Заголовок Content-Disposition Скопировать ссылку
Самый правильный способ попросить браузер скачать файл — добавить на стороне сервера заголовок Content-Disposition к потоку с файлом.
Content-Disposition: attachment; filename=kitten.jpg
Когда браузер видит у заголовка значение attachment , то пытается скачать файл.
Но иногда у вас просто нет возможности настроить сервер под свои нужды и добавить ещё один mod_rewrite . Нужен какой-то более браузерный способ решить задачу.
Атрибут download Скопировать ссылку
Самый простой способ — добавить атрибут download к ссылке.
Если вы добавите его просто так, без значения, браузер постарается получить имя файла либо из заголовка Content-Disposition (опять он, и у него довольно высокий приоритет), либо из пути файла.
Но вы можете задать значение атрибуту download , и тогда это значение станет именем скачиваемого файла. Это может быть полезно, если у ваших файлов какие-нибудь странные автогенерируемые урлы вроде https://cdn/images/a1H5-st42-Av1f-rUles .
Важно! Вся эта магия атрибутов не для ссылок с других доменов (cross-origin). Вы не можете управлять чужими ресурсами из соображений безопасности.
И помните, что IE и старые Safari не понимают атрибут download . Проверьте в Can I use….
blob: и data: Скопировать ссылку
Полезный лайфхак, чтобы помочь вашим пользователям сохранять картинки котиков в удобном для них формате. Если вы на своём сайте используете картинки в форматах AVIF или WebP, есть очень высокая вероятность, что ни один пользователь не сможет сохранить их к себе на компьютер или смартфон, чтобы потом пересмотреть. Точнее, сохранить-то смогут, а вот посмотреть вне браузера не смогут. Печаль.
Чтобы помочь пользователям, используйте data: или blob: внутри атрибута href .
Шаг 1. Нарисуйте картинку на Canvas Скопировать ссылку
const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); const image = new Image(); image.onload = function () < context.drawImage(image, 0, 0); // TODO: всю магию намазывать сюда >; image.src = 'kitten-170.avif';
Шаг 2а. Сохранить картинку как блоб в атрибут href ссылки Скопировать ссылку
const blobLink = document.getElementById('blob-link'); canvas.toBlob(blob => < const blobUrl = URL.createObjectURL(blob); blobLink.href = blobUrl; >, 'image/jpeg', 0.9);
Да-да, я могу сохранить AVIF как JPEG. Классно, правда? Пользователь скачал всего 4 КБ AVIF с сервера, а получил 13 КБ JPEG на клиенте!
Шаг 2б. Сохранить картинку как data в атрибут href ссылки. Скопировать ссылку
Некоторые браузеры не умеют работать с блобами, поэтому вы можете помочь им при помощи data-урлов.
const dataLink = document.getElementById('data-link'); dataLink.href = canvas.toDataURL('image/jpeg', 0.9);
Так даже проще, но такой подход хуже по производительности.
Можете поиграть с полным демо тут:
Источники Скопировать ссылку
- Wiki: Content-Disposition
- MDN: The Anchor element
- MDN: canvas.toDataURL
- MDN: canvas.toBlob
Сохранить файл с URL-адреса — пример C#
В этой статье вы увидите пример C#, который можно использовать для сохранения файла по URL-адресу. Когда вы загружаете файл с URL-адреса, у вас есть возможность доступа, обмена и использования файла из Интернета для различных целей в зависимости от ваших потребностей. Есть несколько причин, по которым вы хотели бы скачать файлы:
- Когда вы сохраняете файлы с URL-адресов, вы можете получить доступ к этим файлам и использовать их в автономном режиме, когда доступ в Интернет ограничен или недоступен.
- Извлечение файлов с URL-адреса может помочь в совместном использовании и совместной работе, распространении контента или обмене файлами.
- Вы хотите сохранить файлы для последующего использования или ссылки. Это могут быть документы, тексты, изображения, видео, аудио или другие типы файлов, которые вы хотите сохранить для будущего использования.
- Сохранение файлов для архивирования и резервного копирования полезна для сохранения важных для вас файлов и защиты их от возможной потери или других непредвиденных событий.
- Вы можете загружать файлы с URL-адресов для учебных целей, получать учебные материалы и учиться где угодно, например, во время поездок на работу, в путешествия или в удаленные места.
Как сохранить файл с URL-адреса
Чтобы сохранить файл с веб-сайта, вам нужно знать его URL и иметь обработчик сетевых операций, подходящий для его протокола. Библиотека Aspose.HTML для .NET предоставляет удобные функции для обработки URL-адресов с различными типами протоколов. Чтобы использовать его, вам просто нужно создать пустой HTML-документ и вызвать обработчик сетевых запросов, как показано в следующем примере C#:
- Используйте конструктор HTMLDocument(), чтобы создать пустой документ.
- Создайте URL-адрес с путем к ресурсу, который вы хотите загрузить.
- Используйте конструктор RequestMessage(url), чтобы создать новый экземпляр класса RequestMessage, который представляет Сообщение HTTP-запроса. В конструктор передается параметр url , указывающий URL, на который будет отправлен запрос.
- Используйте метод Context.Network.Send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Наконец, если ответ был успешным, используйте метод File.WriteAllBytes() для сохранения файлов в локальной файловой системе.
Давайте посмотрим, как сохранить файл с URL-адреса с помощью библиотеки Aspose.HTML C#:
1using Aspose.Html; 2using Aspose.Html.Net; 3using System.IO; 4using System.Linq; 5. 6 // Create a blank document; it is required to access the network operations functionality 7 using var document = new HTMLDocument(); 8 9 // Create a URL with the path to the resource you want to save 10 var url = new Url("https://docs.aspose.com/html/net/message-handlers/message-handlers.png"); 11 12 // Create a file request message 13 using var request = new RequestMessage(url); 14 15 // Save file from URL 16 using var response = document.Context.Network.Send(request); 17 18 // Check whether response is successful 19 if (response.IsSuccess) 20 21 // Save file to a local file system 22 File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray()); 23 >
Вы можете загружать файлы с URL-адресов, используя полные примеры C# из GitHub.
Aspose.HTML предлагает бесплатные Веб-приложения HTML, которые представляют собой онлайн-коллекцию конвертеров, слияний, загрузчиков, инструментов SEO, генераторов HTML-кода, инструментов URL и многое другое. Приложения работают в любой операционной системе с веб-браузером и не требуют установки дополнительного программного обеспечения. Легко конвертируйте, объединяйте, кодируйте, генерируйте HTML-код, извлекайте данные из Интернета или анализируйте веб-страницы с точки зрения SEO, где бы вы ни находились. Используйте нашу коллекцию веб-приложений HTML, чтобы выполнять повседневные дела и сделать свой рабочий процесс безупречным!
Как сохранить себе файл по ссылке
Как сохранить файл к себе на хостинг по ссылке, находящейся в открытом доступе? Формат xml http://topnlab.ru/export/main/database/?data=objects&format=yandex&type=new&id=766344&key=XVWCFLzOZ9hrkJLItQ== Если нажать правой кнопкой мыши на неё и выбрать «сохранить ссылку как. » тогда она скачивается (как ссылка на этом сайте http://sro-gosst.ru/ ). Как сделать так, чтобы просто прописать ссылку и документ загружался на хостинг.
Отслеживать
4,379 4 4 золотых знака 17 17 серебряных знаков 29 29 бронзовых знаков
задан 27 янв 2017 в 16:53
Виктор Васильев Виктор Васильев
292 4 4 серебряных знака 22 22 бронзовых знака
я если честно не понял. особенно не понял при чем тут yml . Скачайте файла по ссылке да закиньте на хостинг по ftp.
27 янв 2017 в 17:32
27 янв 2017 в 17:36
Ну, если задача была такая то я бы сформулировал её иначе. В результате процесс будет автоматизирован. Загвоздка в том, что незнаю, как закачать файл на сайт кодом?
27 янв 2017 в 21:17
Куда прописывать ссылку собираетесь?
27 янв 2017 в 21:31
В переменную. Сначала я реализовал данную задачу через функцию simplexml_load_file, но если файл оказывался слишком большой например по 500мб, то следовательно сервер обрывает связь так как слишком долго держу 502 ошибка. Поэтому я подумал, что лучше сначала разгрузить файлы к себе на сервер, а потом с ними работать, возник вопрос как это сделать, если есть только ссылка на xml.
Сохранение документа в виде веб-страницы
Примечание: Эта статья выполнила свою задачу, и в скором времени ее использование будет прекращено. Чтобы избежать появления ошибок «Страница не найдена», мы удаляем известные нам ссылки. Если вы создали ссылки на эту страницу, удалите их, и вместе мы обеспечим согласованность данных в Интернете.
Если вам нужно сохранить документ Word как веб-страницу, лучше использовать веб-страницу с фильтром «с фильтрацией».
При сохранении документа в виде фильтрованной веб-страницы в Word сохраняются только содержимое, инструкции по стилю и другие сведения. Файл невелик, без большого количества дополнительного кода.
- Выберите файл >Сохранить как и укажите папку, в которой вы хотите сохранить документ.
- Присвойте файлу имя.
- В списке Тип файла выберите пункт веб-страница с фильтром.
- Нажмите кнопку изменить название и введите заголовок, который будет отображаться в заголовке окна веб-браузера.
- Нажмите кнопку Сохранить.
Советы
Чтобы сохранить свойства документа и другие сведения о приложении Word на веб-странице, выберите один из файлов. Но размер файла станет больше, чем больше 10-кратно.
Чтобы сохранить рисунки в отдельной папке, в текстовой части веб-страницы выберите нужный тип. Когда вы захотите опубликовать веб-страницу, опубликуйте ее в папке «рисунки».
Чтобы просмотреть HTML-код веб-страницы, найдите его в проводнике, щелкните его правой кнопкой мыши, наведите указатель на пункт Открыть с помощьюи выберите Internet Explorer. Щелкните правой кнопкой мыши страницу в Internet Explorer и выберите пункт Просмотр исходного кода.
Другие способы предоставления общего доступа к документу через Интернет
Приложение Word разрабатывалось для создания и печати документов. В Word 2013 теперь у вас есть и другие варианты, позволяющие поделиться вашими идеями и работать в Интернете.
Сохранение документа в виде записи в блоге
Если вы хотите написать сообщение в приложении Word, вы можете сохранить его в виде записи блога. В Word сохраняется не менее объем информации, чем при работе с содержимым. Опубликованный документ использует стили блога.
- Щелкните файл >поделиться >Опубликовать как запись блога.
- Щелкните Опубликовать как запись блога.

При первой публикации документа в блоге Word поможет зарегистрировать свою учетную запись в блоге.
Сохранение на OneDrive и общий доступ
Вы можете поделиться документом с друзьями и коллегами, сохранив его в OneDrive и Приглашай для просмотра.
- Щелкните файл >сохранить как >OneDrive.
- Выберите расположение в OneDrive папках.
- Введите имя файла и нажмите кнопку Сохранить.
Затем пригласить других пользователей для просмотра вашего документа. Если у пользователей нет Word, документ автоматически откроется в Word в Интернете.
- Откройте вкладку Файл и выберите пункты Общий доступ >Пригласить пользователей.

- Добавьте свои адреса электронной почты.
- Выберите команду Общий доступ.

Сохранение в виде PDF-файла
Чтобы преобразовать документ в PDF- файл , вы можете опубликовать его на сайте, а затем выбрать команду > Сохранить как. В списке Тип файла выберите PDF.
Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
