Как создать временную ссылку для скачивания файла

Обновлено: 07.07.2024

Поделитесь файлом или папкой одним из следующих способов:

  • Через верхнее меню
  • Через контекстное меню
  • В окне просмотра

Откройте файл и в правом верхнем углу нажмите значок .

Какими файлами и папками можно делиться

Делиться можно файлами и папками, которые лежат в корневом каталоге Диска и во всех созданных вами папках. Если вы хотите поделиться файлом, приложенным к письму, сначала скопируйте его из папки Почтовые вложения (на вкладке Архив на панели слева) в нужную папку на Диске.

Нельзя поделиться файлами и папками, которые лежат внутри общей папки, если вы не ее владелец и имеете право доступа только на просмотр.

Внимание. Если файл, которым вы делитесь, нарушает Условия использования Яндекс.Диска (пункт 4.3), он может быть заблокирован.

Как долго работает ссылка

Ссылка на файл или папку будет работать до тех пор, пока вы не закроете к ним доступ. Если вы опубликуете тот же самый файл или папку еще раз, Диск сгенерирует новую ссылку. Но если файл уже опубликован и вы снова получаете публичную ссылку на него с помощью программы для компьютера или мобильного приложения, то это будет та же самая ссылка, что была сгенерирована при публикации этого файла.

Посмотреть опубликованные файлы

Чтобы получить всю информацию о выбранном файле или папке, нажмите значок в левом верхнем углу. В меню отобразятся:

имя (чтобы его изменить, нажмите  → Переименовать на верхней панели или в контекстном меню);

Не могу создать ссылку

Возможно, на вашем Диске закончилось место.

файлы, которыми вы поделились ранее, недоступны по публичным ссылкам; Совет. Чтобы не потерять файлы, перед удалением скачайте их на компьютер.

Не скачивается файл

Иногда при работе с Диском перестают работать кнопки, не загружаются элементы страницы, не открываются фото, не скачиваются файлы или браузер сообщает об ошибке.

Скачивание публичного файла ограничено

Если публичный файл был скачан много раз в течение суток, включается лимит — скачивание может быть ограничено на сутки. Если вы не хотите ждать, сохраните файл на свой Диск с помощью кнопки Сохранить на Яндекс.Диск . Чтобы скачивать публичные файлы без ограничений, оформите подписку на Яндекс 360.

Примечание. Скачивать можно только публичные папки, в которых меньше 500 файлов, или папки размером до 5 ГБ. Папки большего размера вы можете сохранить на свой Диск.

Чтобы уменьшить расход трафика, браузер сохраняет копии посещенных страниц в кеше. Когда вы повторно просматриваете страницы, браузер может загружать их данные из памяти. Например, если вы измените имя файла через программу для компьютера, а браузер загрузит из памяти информацию об этом файле, вы увидите неактуальное имя файла.

Попробуйте обновить страницу, чтобы принудительно загрузить ее из интернета. Если проблема не решится, очистите кеш браузера и удалите все файлы cookie.

Расширения блокируют Яндекс.Диск

Диск может работать некорректно из-за дополнений и расширений в браузере. Чтобы проверить это, временно отключите их. Если Диск работает неправильно из-за блокировщика рекламы или расширения-антивируса, добавьте страницу Диска в исключения этого расширения. Подробнее см. в разделах Настроить блокировщики рекламы, Настроить исключения для сайтов.

скачать исходники
скачать урок

1. Постановка задачи

Для начала давайте условимся, что одноразовую ссылку мы будем создавать для скачивания файла. Данный файл будем хранить в папке file и это обычное изображение, которое необходимо для примера.

Далее, создание одноразовой ссылки заключается в генерации уникальной строки, которую необходимо передать в специальный файл обработчик. Данный файл выполнит необходимые проверки и если ссылка верна (уникальная строка), значит, откроется доступ для скачивания файла. Конечно, для каждого пользователя необходимо создавать отдельную ссылку, и поэтому все созданные ссылки необходимо где то хранить. В качестве хранилища ссылок можно выбрать или базу данных, или обычный текстовый файл. Мы в данном уроке будем использовать текстовый файл для хранения созданных ссылок.


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

И последнее, необходимо обеспечить одноразовое использование ссылки. То есть, любую созданную ссылку, пользователь сможет использовать не более одного раза. При повторном использовании ссылки, доступ на скачивание файла необходимо запретить. Теперь давайте приступим к реализации поставленной задачи.

2. Создание одноразовых ссылок

Итак, на локальном компьютере в папке lessons, я создал папку onetime, в которой мы будем хранить наш будущий скрипт. То есть путь к папке с скриптом будет следующий: //localhost/lessons/onetime/

Теперь, давайте создадим новый файл, под названием get_hash.php, который будет генерировать уникальную строку и тем самым формировать одноразовую ссылку, для скачивания файла. Первым делом, генерируем уникальную строку:


Как Вы видите, строка успешно генерируется. Далее, создадим переменную $file, в которой будем хранить имя файла, в котором будут храниться созданные уникальные строки для ссылок:

Теперь, созданную строку необходимо сохранить в файле, поэтому, давайте откроем текстовый файл для записи:

Для открытия файла для записи используем функцию fopen(). Которая открывает файл в определенном режиме. Мы будем работать в режиме a, то есть, открываем файл только для записи и указатель перемещаем в конец файла (если мы вызываем функцию в первый раз, то открываемый файл будет создан).

Теперь, для предотвращения появления ошибок, связанных с постоянным обращением к файлу, необходимо блокировать его на время записи данных. То есть при генерации ссылки, выполняется запись уникальной строки в файл. Затем, мы с Вами будем постоянно считывать данные файла, для проверки правильности строк. При этом могут возникать ошибки при многочисленных обращениях к файлу в один и тот же момент времени (то есть запись и считывание данных происходит практически одновременно). Поэтому перед записью данных мы с Вами заблокируем файл функцией flock():

Напомню, что данная функция накладывает блокировку на файл. Режим работы которой, задается константами, передаваемыми вторым параметром к данной функции. Режим LOCK_EX – накладывает эксклюзивную блокировку (запись). И при этом все возможные обращения файлу будут запрещены, то есть пока он заблокирован. Кроме записи данных в файл из нашего скрипта, что собственно мы и выполним:

Для записи мы используем функцию fwrite, и записываем сгенерированную уникальную строку. Теперь давайте разблокируем файл, то есть, разрешим обращение к нему из вне, и закроем файл:

Для разблокировки доступа к файлу, мы используем функцию flock(), и передаем константу LOCK_UN, то есть снятие блокировок. Теперь, давайте несколько раз обновим скрипт и посмотрим, что записалось в файл:


Как Вы видите, данные в файл успешно записаны. Теперь необходимо сформировать ссылку и отобразить ее на экране для пользователя:

$ path = substr ( $ _SERVER [ 'PHP_SELF' ] , 0 , strrpos ( $ _SERVER [ 'PHP_SELF' ] , "/" ) ) ; echo "<a href='//" . $ _SERVER [ 'HTTP_HOST' ] . $ path . "/get_file.php?hash crayon-sy">. $ hash . "'>//" . $ _SERVER [ 'HTTP_HOST' ] . $ path . "/get_file.php?hash crayon-sy">. $ hash . "</a>" ;


Как Вы видите, ссылка выводится, уникальная строка генерируется и записывается в текстовый файл. Значит, мы все сделали правильно. Теперь на всякий случай приведу полный код файла, get_hash.php:

$path = substr ( $_SERVER [ 'PHP_SELF' ] , 0 , strrpos ( $_SERVER [ 'PHP_SELF' ] , "/" ) ) ; echo "<a href='//" . $_SERVER [ 'HTTP_HOST' ] . $path . "/get_file.php?hash crayon-sy">. $hash . "'>//" . $_SERVER [ 'HTTP_HOST' ] . $path . "/get_file.php?hash crayon-sy">. $hash . "</a>" ;

Теперь необходимо создать скрипт, который получит передаваемые данные и выполнит необходимые проверки.


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

3. Проверка ссылок

Итак, создаем пустой файл get_file.php, в котором мы будем проверять правильность ссылки и если все верно, предоставлять доступ для скачивания файла. Первым делом, создаем две переменные, которые будут содержать имя файла для скачивания (ссылку на который мы создаем), и имя файла с уникальными строками ссылок:

Затем, создаем переменную, которая будет содержать разрешение на скачивание файла. То есть, если значение данной переменной равно TRUE, значит, необходимо разрешить скачивание ссылки:

Данный в этот файл передаются методом GET (через адресную строку), значит в суперглобальном массиве GET, будет создана ячейка hash. Поэтому, сохраним значение данной ячейки, так же в отдельной переменной:

Теперь, так как мы знаем, что уникальная строка, получена с помощью шифрования md5, значит уникальная строка должна содержать ровно 32 символа. Поэтому, давайте выполним первую проверку:

Теперь считаем файл с уникальными строками и все его содержимое построчно, сохраним в ячейках массива:

То есть массив $arr, содержит в каждой своей ячейке сгенерированную строку из файла. К примеру, если распечатать его функцией print_r(), мы увидим следующее:


Теперь, так как все содержимое файла, содержится в одном массиве, мы можем проверить, есть ли строка, переданная через GET параметры (значение переменной $hash) в одной из ячеек массива $arr. И если действительно есть совпадение, значит, доступ к файлу можно открыть.

Но, нам ведь еще нужно обеспечить одноразовое использование каждой ссылки. Поэтому, мы очистим файл с уникальными строками. Затем в цикле обойдем массив $arr и на каждой итерации цикла будем сравнивать текущее значение ячейки массива, с значением переменной $hash. Если совпадение не найдено, значение данной ячейки запишем обратно в файл, если же найдено совпадение, то записывать ничего не будем, только в переменную $check сохраним значение TRUE. При этом мы обеспечим одноразовое использование ссылки. Так как если ссылка пройдет проверку (будет найдено совпадение с кодом файла), ее уникальный код при перезаписи уже не попадет в текстовый файл. И повторно использовать данную ссылку (уникальный код для проверки) будет не возможно.

Поэтому, открываем файл для записи в режиме w (открывает файл только для записи и помещает указатель в начало файла и обрезает файл до нулевой длины.):

Как правильно сделать ссылку, чтобы при клике на неё начиналось скачивание файла. Атрибут download для HTML-тега ссылки. Примеры ссылок для скачивания.

скачать

Как сделать скачивание файла с сайта.

Не редкость когда нужно бывает создать ссылку для скачивания какого то файла. При этом желательно чтобы это была прямая ссылка для скачивания, а не на внешний сайт (облако, хранилище).

Для скачивания можно передавать файлы самых различных форматов: музыка, видео, текстовые файлы, Excel, архивы и мн. другие.

Как на сайте сделать скачивание файла

Возможно вы хотите поделиться с посетителями вашего сайта каким либо файлом, при этом файл может быть самого любого формата.

Делается это при помощи ссылки на файл с использованием специального HTML тега. Про то как создавать обычные ссылки есть статья: как сделать ссылку

Ниже пойдёт речь о том как сделать ссылку для скачивания файла.

Скачивание архивов

Для файлов-архивов (форматы zip, rar и т.д.) достаточно просто указать ссылку на файл который нужно передать для скачивания. Поэтому здесь применяется обычный HTML тег ссылки:

текст ссылки - можно указать текст типа: скачать файл, скачать прайс, скачать песню, скачать видео и т.д.

А вот для файлов не архивных форматов (музыка, видео, различные текстовые файлы и документы, изображения и т.д.) применяется специальный для этого тег.

HTML атрибут download

Для того, чтобы передать какой либо файл для скачивания пользователю, в HTML ссылки нужно прописать атрибут download .

Структура ссылки для скачивания в html строится следующим образом:

В атрибуте download ничего указывать не нужно. Браузер поймёт что файл нужно скачивать, а не открывать.

Со всплывающей подсказкой:

В кавычках атрибута title прописываем текст всплывающей подсказки.

*Обязательно не забываем переключить редактор в режим HTML чтобы редактировать теги

Текстовая ссылка

Код:

Результат: скачать файл

Код:

Результат:

Есть такой инструмент как Генератор кнопок, где просто генерировать кнопки с тегом скачивания и иконками.

Кнопка с иконкой

Так же можно добавить к тексту ссылки иконочный шрифт, если он установлен у вас на сайте. При этом шрифтовую иконку можно поставить перед или после текста ссылки.

Код вставки иконки

Код:

Результат:

Скачивание файла при клике на изображение

Код:

Результат:

кнопка скачать

Со стилями CSS

Так же можно применять все свойства CSS и изменять размер шрифта, название, цвет и т.д.

Для этого добавляем атрибут style=" "

Код:

Результат:

Если вам что то не понятно или есть какие либо вопросы - не стесняйтесь и задавайте их в комментариях.

ссылка

Инструкция как делать ссылки: анкорные и безанкорные ссылки, ссылки в BB-кодах, ссылки открывающиеся в новой вкладке, ссылки на изображениях и т.д.

Онлайн экранирование кода для вставки в HTML

Данный инструмент позволяет на лету без перезагрузки страницы экранировать код для дальнейшей вставки его в HTML, заменяя в коде символы требующие обязательного экранирования для таких случаев. Это символы: < > & "

Как загрузить файл на яндекс диск

Всем привет! Как оказалось, многие даже не знают, как загрузить файл на яндекс диск для скачивания другими пользователями. Я удивился, но не сильно. Всё таки за всем сегодня не уследишь. Поэтому моя сегодняшняя статья будет посвящена целиком и полностью этому вопросу.

Сайт (браузерная версия)

Естественно, самым простым способом это сделать будет являться прямая загрузка через браузер. Я надеюсь, что у вас есть почта на Яндексе. Ведь именно она нужна, чтобы завести себе облачное хранилище.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

  1. Итак, когда вы зайдете на свое хранилище в браузере , то в левом верхнем углу увидите кнопку «Загрузить» . Кликните на нее.
  2. Далее, выбираете в проводнике файлы (можно выбрать один или несколько) и открываете их. Через считанные секунды или минуты (в зависимости от скорости интернета и размера) документы буду на диске.

Но лично я предпочитаю использовать способ перетаскивания. То есть в проводнике нужно выделить один или несколько файлов, после чего необходимо зажать на них левой кнопкой мыши. А далее, не отпуская кнопку мыши, переносим их в окно яндекс диска, после чего отпускаем. Эффект будет тот же самый.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Ну и конечно же не забываем, что на самом диске можно создавать различные папки, чтобы упорядочивать все документы по категориям. В будущем вы сможете передавать всё вашим друзьям или вообще любым людям.

Как создать ссылку, чтобы файл могли скачать другие пользователи?

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Кстати, если раньше максимально допустимый размер документа был всего 2 ГБ, то теперь пользователи могут загружать файлы до 10 ГБ.

Программа

Также в Яндекс диске существует возможность установить программу непосредственно на компьютер. При этом, у вас появится новая облачная папка, с которой вы сможете работать не заходя в браузер. Довольно удобная штука.

Чтобы поставить себе программу Яндекс диск на компьютер, вам нужно зайти в свой аккаунт и выбрать пункт «Установить для Windows» .

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Теперь просто скачиваете и устанавливаете программу по инструкции. Ничего сложного там нет.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

После этого в области уведомлений появится значок летающей тарелки. Это и будет наше хранилище от Яши. Вначале он пройдет синхронизацию, после чего вы сможете работать с ними как в обычном проводнике. Для этого просто достаточно нажать на этот самый значок и у вас тут же откроются все файлы.

Сразу хочу сказать, что они даже не занимают место не только на жестком диске. Но если вы удалите хоть один документ из этой папки, то в личном кабинете в браузере вы уже его не найдете. Но не переживайте. Даже если это и произойдет, то он не удалится, а переместится в корзину.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Ну а загрузить файл на яндекс диск для возможности скачивания теперь вообще не составит проблем. Так как это по сути папка, то и работать в ней можно точно также. То есть, мы берем любой любой документ с вашего компьютера, после чего копируем его CTRL+C. А дальше снова заходим в нашу летающую тарелку, то бишь папку Яндекса. И уже там вставляем скопированное с помощью комбинации клавиш CTRL+V. После этого файл автоматически появится у вас и в браузерной версии.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Ну и точно также, как и в предыдущем варианте, вы можете просто просто перетащить файл из проводника в облачную папку. То бишь выделяем, зажимаем и перетаскиваем. Всё просто.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Как поделиться ссылкой?

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Также, несомненным преимуществом программы является максимальный размер загружаемого файла. Сюда вы можете вставлять из проводника любвые виды файлов до 50 ГБ. Так что хоть фильмы закачивайте в BlueRay. Программа вам ни слова не пискнет.

Мобильное приложения

Ну и куда же мы без мобильных технологий. Ведь сейчас с помощью смартфона можно делать практически всё то же самое, что и с компьютера. Но для этого нам понадобится отдельное мобильное приложение. Его можно бесплатно скачать в Google Play и App Store.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

После установки приложения вам нужно будет войти в него и авторизироваться под своей учетной записью Яндекса. А дальше, я думаю, у вас уже не составит труда разобраться с программой. Скажу лишь, что для загрузки файла на яндекс диск вам необходимо будет нажать на кнопку со значком плюса.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

После этого вам уже нужно будет выбрать, что вы конкретно хотите загрузить на ваш облачный диск. Например, это может быть картинка из галереи, новое фото, файлы с устройства или вообще создание новой папки для упорядочивания документов. Ну а далее, в зависимости от вашего выбора, выбираем то, что вам нужно.

Как загрузить файл на яндекс диск и создать ссылку для скачивания

Потом уже вы спокойно сможете поделиться загруженными файлами с друзьями. Просто отправьте ссылку на него в любом виде (по почте, в социальные сети и т.д.).

Как видите, способов много, причем на все случаи жизни. Конечно, безусловным плюсом мобильного приложения является то, что вы можете включить безлимитное добавление фотографий. Об этом я уже упоминал в своей статье, когда рассказывал про увеличение места на яндекс диске. Так что я рекомендовал бы вам все такие поставить данное приложение на ваш смартфон, чтобы облачное хранилище всегда было под рукой.

Правда я вам скажу, что в большей степени я все таки пользуюсь облаком Mail. А все потому, что в свое время я отхватил на нем 1000 мегабайт дискового пространства нахаляву. Но и Яшей я не перестаю пользоваться. Он у меня всегда под рукой.

Ну а на этом у меня всё. Надеюсь, что моя статья вам понравилась. Поэтому не забывайте подписываться на мой блог в социальных сетях. Тогда вы всегда будете в курсе всего нового и интересного. Жду вас снова. Удачи вам. Пока-пока!

Читайте также: