2016-03-07 6 views
0

Цель состоит в том, чтобы генерировать миниатюры/предварительный просмотр на стороне сервера только, если это невозможно сделать на стороне клиента.Как определить, может ли изображение просматриваться в текущем браузере с помощью Fine-Uploader?

В Fine-Uploader documentation состоянии:

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

Как сервер знает, может ли Fine-Uploader создать клиентскую версию предварительного просмотра или нет?

ответ

0

Невозможно достоверно определить, успешно ли сгенерирован предварительный просмотр до, так как предварительный просмотр представляет собой асинхронный процесс и может завершиться после отправки запроса. Тем не менее, вы можете определить, имеет ли текущий браузер возможность генерировать предварительный просмотр изображения, проверив imagePreviewsfeature flag. Если qq.supportedFeatures.imagePreviews - true, то текущий браузер способен генерировать изображения на стороне клиента. Если этот флаг равен false, вы можете установить parameter with all upload requests, который указывает серверу вместо этого возвращать URL предварительного просмотра изображения. Например, вы можете настроить ваш вариант PARAMS сделать это:

request: { 
    params: isBrowserPreviewPossible: qq.supportedFeatures.imagePreviews 
} 

isBrowserPreviewPossible пары ж/значения будет передаваться с каждым запросом загрузки на ваш сервер. Это demonstrated in the live S3 uploader at FineUploader.com.

+0

Hi Ray, спасибо за ответ. Я бы очень хотел сделать это возможным. Я нашел функцию 'isPreviewable()' в вашем коде. Можете ли вы сказать, насколько он надежный? Возможно ли, что браузер будет генерировать предварительный просмотр, если эта функция вернет успех? –

+0

Вы, конечно, можете использовать это, и это _is_ надежно, поскольку Fine Uploader использует его внутри. Проверка является асинхронной, поэтому вам нужно будет обрабатывать возвращаемый доход. Вам нужно будет проверить, прежде чем файл будет загружен (установите 'autoUpload' на' false' или возьмите файл с других средств, прежде чем передавать его в Fine Uploader. Когда у вас есть идентификатор 'File' /' Blob': 'var = new qq.Identify (файл, функция() {}); var prom = identifier.isPreviewable; '. Fine Uploader использует [нестандартный' qq.Promise' внутри] (http://docs.fineuploader.com/) филиал/мастер/возможность/асинхронная-задача-и-promises.html). –