Добрый день! последнее время очень часто слышу от ios, android разработчиков что обычный вариант отправки картинок на сервер (который мы можем получить через $_FILES) устарел и теперь они предлагают отправить файл как обычный string параметр в формате base64 а на сервер это преобразовать в файл через fwrite(или каким то аналогом) и сохранить.
Теперь вопрос как вы думаете есть ли логика в этом или нет ?
1. Соц Сеть - 19 Октября, 2020 - 16:06:40 - перейти к сообщению
2. LIME - 19 Октября, 2020 - 22:26:49 - перейти к сообщению
Через какой апи? Наверное RESTlike JSON API.
если так уж хотят упарываться тогда и отдавать им картинки как base64 внутри объекта ответа вместо ссылки на src )) хотя можно конечно рассматривать ссылки как линки hateoas
не обязательно все клиентсерверное взаимодействие нужно делать через Api
пусть рассматривают загрузку картинок как микросервис медиахостинга без апи
тут важнее взвесить что это изменение дает в плюсах и минусах в вашем случае
если уже реализовано, то надо ли трогать?
если не реализовано, то насколько будет нагружен сервис загрузками? base64 дает +30% к размеру
и если делать "по старинке", то как реализовывать всякие уже сделаные для апи штуки, например аутентификацию? хотя тут возможно и не будет проблем
мобильщики конечно красавцы, а как будут паковать в base64 браузерные web-клиентщики? у них доступа к содержимому файла нет
плюсы то в чем? если только в том что им там в своих приложениях так легче, то подумать и о том что есть разные клиенты
тут главное вам всем в религии слепо не ударяться
З.Ы.: если выскажут плюсы, кидай сюда, мне интересно посмотреть
(Добавление)
вот вроде чтото дельное
https://ru[dot]stackoverflow[dot]com/que[dot][dot][dot]1%86%D0%B8%D0%B8
Соц Сеть пишет:
пусть ответят прежде всего на вопрос - в чем он устарел? сами себе хотябыустарел
если так уж хотят упарываться тогда и отдавать им картинки как base64 внутри объекта ответа вместо ссылки на src )) хотя можно конечно рассматривать ссылки как линки hateoas
не обязательно все клиентсерверное взаимодействие нужно делать через Api
пусть рассматривают загрузку картинок как микросервис медиахостинга без апи
тут важнее взвесить что это изменение дает в плюсах и минусах в вашем случае
если уже реализовано, то надо ли трогать?
если не реализовано, то насколько будет нагружен сервис загрузками? base64 дает +30% к размеру
и если делать "по старинке", то как реализовывать всякие уже сделаные для апи штуки, например аутентификацию? хотя тут возможно и не будет проблем
мобильщики конечно красавцы, а как будут паковать в base64 браузерные web-клиентщики? у них доступа к содержимому файла нет
плюсы то в чем? если только в том что им там в своих приложениях так легче, то подумать и о том что есть разные клиенты
тут главное вам всем в религии слепо не ударяться
З.Ы.: если выскажут плюсы, кидай сюда, мне интересно посмотреть
(Добавление)
вот вроде чтото дельное
https://ru[dot]stackoverflow[dot]com/que[dot][dot][dot]1%86%D0%B8%D0%B8
3. Vladimir Kheifets - 20 Октября, 2020 - 14:41:34 - перейти к сообщению
Соц Сеть пишет:
Добрый день! последнее время очень часто слышу от ios, android разработчиков что обычный вариант отправки картинок на сервер (который мы можем получить через $_FILES) устарел и теперь они предлагают отправить файл как обычный string параметр в формате base64 а на сервер это преобразовать в файл через fwrite(или каким то аналогом) и сохранить.
Теперь вопрос как вы думаете есть ли логика в этом или нет ?
Теперь вопрос как вы думаете есть ли логика в этом или нет ?
Добрый день!
Действительно, сейчас во многих проектах не используют <input type="file"> для отправки картинок на сервер,
а на стороне клиента реализуют загрузку, предварительный просмотр, редактирование и отправку.
Для отправки файл как обычный string в бинарном фомате используют HTMLCanvasElement.toBlob()
https://developer[dot]mozilla[dot]org/en[dot][dot][dot]asElement/toBlob
Вы можете помотреть полную спецификацию File API здесь.
http://www[dot]w3[dot]org/TR/file-upload/
Советую Вам скачать этот проект
https://github[dot]com/fengyuanchen/cropperjs
В нём посмотрите примеры.
https://fengyuanchen[dot]github[dot]io/photo-editor/
https://fengyuanchen[dot]github[dot]io/c[dot][dot][dot]e-to-server[dot]html
В этом случае на стороне сервера Вы так же получаете $_FILES и можете его обрабатывать на PHP.
Думаю есть логика в использовании современных методов вообщее и в данном контексте.
К сожалению устаревшие браузеры, не поодерживаю element canvas и метод toBlob().
В свoих проетах проверяю так
Спойлер (Отобразить)