बनाएं जो लोग Imagine
एकीकृत करने में असमर्थ हैं के लिए ठीक तरह से मुझे ..
मुझे एक और समाधान मिला WebinoImageThumb here जो मेरे साथ पूरी तरह से ठीक काम करता था।
रन:: config/application.config.php
में php composer.phar require webino/webino-image-thumb:dev-develop
और WebinoImageThumb
जोड़ने के रूप में सक्रिय मॉड्यूल जो की तरह आगे दिखता है:
<?php
return array(
// This should be an array of module namespaces used in the application.
'modules' => array(
'Application',
'WebinoImageThumb'
),
.. नीचे एक ही
बनी हुई है यहाँ छोटे से स्पष्टीकरण अगर आप पूर्ण प्रलेखन पढ़ने के लिए नहीं करना चाहती है
अब इस लोकेटर सेवा के माध्यम से अपने नियंत्रक कार्रवाई प्रयोग में नीचे की तरह:
// 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()));
}
शुभकामनाएं .. !!
क्या इसके अंदर सेवा लोकेटर का उपयोग करने के बजाय नियंत्रक को छवि सेवा (परीक्षण के लिए नकली आसान इंजेक्शन) इंजेक्ट करना बेहतर नहीं होगा? वास्तव में –
। यह निश्चित रूप से इसका त्वरित और गंदा संस्करण था। मैं मजबूत आईओसी का एक मजबूत टिकाऊ हूं (http://ocramius.github.com/blog/zf2-and-symfony-service-proxies-with-doctrine-proxies/) – Ocramius
@ ओक्रैमियस बहुत उपयोगी उत्तर देखें। धन्यवाद, इसे कार्यान्वित करने की जांच करेगा। – Prashant