2015-11-28 1 views
0

В веб-приложении я использую Cropit, чтобы пользователь мог загружать и обрезать изображение. Затем мне нужно загрузить это изображение на сервер.Лучше загружать файл изображения из браузера на сервер в виде данных URI или двоичных данных?

Cropit возвращает обрезанное изображение в Data URI format (тип string).

Мой вопрос: какой лучший способ теперь загрузить обрезанное изображение на серверный сервер?

До сих пор я понял, два варианта здесь:

  1. Отправьте URI данных от клиента в виде простой строки, а затем преобразовать его в двоичные данные на сервере, и сохранить изображение на диск ,

  2. Конвертировать URI данных в двоичный файл на клиентском компьютере и прикрепить его к входу FormData, а затем отправить его на сервер и сохранить изображение на диск.

Если я правильно понимаю, нет родного JS способа отправить URI данных в качестве multipart/form-data. Это правильно?

Лучше (более эффективный/безопасный) использовать подход 1 или 2? Или предпочтительнее делать это по-другому, о чем я не упоминал?

Спасибо!

ответ

0

Как вы сказали, что мы можем сохранить URL данных в файл с помощью сервера, как вэй, как мы можем сохранить это в местных используя JavaScript, используя ниже код

с помощью PHP:

$uri_ = 'data://' . substr($uri, 5); 
$binary = file_get_contents($uri_); 

По JavaScript см это github

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

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

0

Надеется, что вы осведомлены о проблемах с помощью редактирования изображений на основе HTML5 холста, для различных размеров изображений, размера холста и качества изображения.

  1. Как вы упомянули, используя формат данных, вы можете написать то же самое в файл на стороне сервера логики (так как я не уверен стороне сервера технологии вы используете)
  2. Другой подход может быть использование инструмента CLI изображения magic (http://www.imagemagick.org/) на стороне сервера для обработки изображения. т.е. загрузить файл на сервер с дополнительной информацией для редактирования изображения и обработать его на сервере.Для сбора редактировать информацию от клиента вы можете использовать любой из стороны клиента Javascript библиотеки (http://odyniec.net/projects/imgareaselect/)
+0

Я заметил некоторые проблемы с редактированием изображений на основе холста HTML5, не могли бы вы быть более конкретными или предоставить некоторые ссылки, которые подробно описывают проблему? Благодаря! – Pensierinmusica

+1

Преимущественно проблемы с вниз выборки: взгляните на следующие http://stackoverflow.com/questions/17861447/html5-canvas-drawimage-how-to-apply-antialiasing http://stackoverflow.com/ вопросы/2303690/изменение размеров-ан-изображение-в-ан-html5-холст – Bijeshp009

2

Лучший способ, чтобы отправить Ури данных с помощью метода пост

Я обнаружил, что самый быстрый Самый надежный метод - превратить изображение в uri данных.

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

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