Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Несколько вопросов по программированию файлообменника

#jquery #php #javascript


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

Как заставить пользователя не посмотреть, а скачать картинку, текст, при клике на
ссылку? Как это делается в гуглопочте, к примеру.
Так и не нашел способа проверить размер файла до загрузки на сервер, выбранный через
хтмл файловый инпут (форму). Способ, признанный решением в прошлом моем вопросе, оказывается,
работает далеко не во всех браузерах.
Как добавить значение переменной в буфер обмена на javascript, jquery? Возможно ли это?
Можно ли как-то реализовать шкалу процесса загрузки файла на сервер через javascript,
jquery? Или только флэш и схожие технологии, типа сильверлайт?

Хочется от Вас не готового кода, а мануалов, решений и предложений, что гуглить, читать.
Благодарю.     


Ответы

Ответ 1



@Gorets, а в чем дело?! 1) header('Content-Disposition: attachment; filename="filename"'); 2) Никак. Универсальных способов нет, а те, которые могут помочь легко обмануть. Ограничения все кладете на сервер, соответственно держите лишние 10-20 максимальных объемов, которые можно успеть залить за время взаимодействия с сервером. Пример: максимальное время запроса - минута, максимальная скорость на вход - 100мбит/с. Итог: у вас должно быть свободно ~8-15 гиг. 3) Кукисы. С буфером обмена, к счастью, JS работать не умеет (ActiveX не в счет). 4) Универсальных способов нет. Некоторые браузеры это умеют, типа лисы, но не все.

Ответ 2



Нажал сразу на "отправить на сервер" и ничего не выбирал Файлы данного вида запрещены к загрузке на сервер, сожмите его в .rar или в .zip архив. И дальше закрыл страницу.

Ответ 3



Ну первую "проблему" можно решить гораздо гибче с помощью волшебного .htaccess: AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4 Как понятно, это список файлов, котрые будут предлагаться сохранять, а не открывать в браузере. Зато не придется каждый раз отправлять хедеры. Четвертую можно решить на HTML5 progress`ом.

Ответ 4



По поводу четвертого вопроса - http://php.net/manual/en/session.upload-progress.php

Комментариев нет:

Отправить комментарий