Я пытался заставить флэш-загрузчик Uploadify (www.uploadify.com) работать с Zend Framework, но пока безуспешно.
Я поместил все файлы Uploadify в каталог / public / flash-uploader .
В контроллере я включаю все необходимые файлы и библиотеки, как это:
$this->view->headScript()->appendFile('/js/jquery-1.3.2.min.js');
$this->view->headLink()->appendStylesheet('/flash-uploader/css/default.css');
$this->view->headLink()->appendStylesheet('/flash-uploader/css/uploadify.css');
$this->view->headScript()->appendFile('/flash-uploader/scripts/swfobject.js');
$this->view->headScript()->appendFile('/flash-uploader/scripts/jquery.uploadify.v2.1.0.min.js');
И затем я активирую плагин следующим образом (#photo - идентификатор поля входного файла):
$(document).ready(function() {
$("#photo").uploadify({
'uploader' : '/flash-uploader/scripts/uploadify.swf',
'script' : 'my-account/flash-upload',
'cancelImg' : '/flash-uploader/cancel.png',
'folder' : 'uploads/tmp',
'queueID' : 'fileQueue',
'auto' : true,
'multi' : true,
'sizeLimit' : 2097152
});
});
Как видите, я нацеливаю сценарий my-account / flash-upload на обработку бэкенда (my-account - это контроллер, flash-upload - действие).
Моя разметка формы выглядит так:
<form enctype="multipart/form-data" method="post" action="/my-account/upload-public-photo"><ol>
<li><label for="photo" class="optional">File Queue<div id="fileQueue"></div></label>
<input type="hidden" name="MAX_FILE_SIZE" value="31457280" id="MAX_FILE_SIZE" />
<input type="file" name="photo" id="photo" class="input-file" /></li>
<li><div class="button">
<input type="submit" name="upload_public_photo" id="upload_public_photo" value="Save" class="input-submit" /></div></li></ol></form>
И все же это не работает. Кнопка обзора даже не отображается, как на демонстрационной странице, я получаю только обычное поле входного файла.
Есть идеи, где может быть проблема? Я уже часами смотрю на код и не вижу нигде ошибки, и начинаю истощаться после того, как 30 раз подряд прохожу 30 одинаковых строк кода.