Per coloro che non sono in grado di integrarsi Imagine
proprio come me ..
Ho trovato un'altra soluzione WebinoImageThumb here che ha funzionato perfettamente bene con me.Ecco piccola spiegazione se non vuoi leggere la documentazione completa:
Run: php composer.phar require webino/webino-image-thumb:dev-develop
e aggiungere WebinoImageThumb
modulo come attiva nel config/application.config.php
che ulteriori assomiglia:
<?php
return array(
// This should be an array of module namespaces used in the application.
'modules' => array(
'Application',
'WebinoImageThumb'
),
.. sotto rimane lo stesso
Ora nel vostro uso azione di controllo attraverso questo servizio di individuazione come di seguito:
// at top on your controller
use Zend\Validator\File\Size;
use Zend\Validator\File\ImageSize;
use Zend\Validator\File\IsImage;
use Zend\Http\Request
// in action
$file = $request->getFiles();
$fileAdapter = new \Zend\File\Transfer\Adapter\Http();
$imageValidator = new IsImage();
if ($imageValidator->isValid($file['file_url']['tmp_name'])) {
$fileParts = explode('.', $file['file_url']['name']);
$filter = new \Zend\Filter\File\Rename(array(
"target" => "file/path/to/image." . $fileParts[1],
"randomize" => true,
));
try {
$filePath = $filter->filter($file['file_url'])['tmp_name'];
$thumbnailer = $this->getServiceLocator()
->get('WebinoImageThumb');
$thumb = $thumbnailer->create($filePath, $options = [], $plugins = []);
$thumb->adaptiveResize(540, 340)->save($filePath);
} catch (\Exception $e) {
return new ViewModel(array('form' => $form,
'file_errors' => array($e->getMessage())));
}
} else {
return new ViewModel(array('form' => $form,
'file_errors' => $imageValidator->getMessages()));
}
Buona fortuna .. !!
Non sarebbe meglio iniettare il servizio di immagine (più facile iniezione di simulazione per testare ecc.) Al controller invece di usare il localizzatore di servizio al suo interno? –
Infatti. Questa era sicuramente la versione veloce e sporca. Sono un forte sostenitore di un forte IOC (vedi http://ocramius.github.com/blog/zf2-and-symfony-service-proxies-with-doctrine-proxies/) – Ocramius
@Ocramius Risposta molto utile. Grazie, controllerà l'implementazione. – Prashant