1

我正在努力Uploadify工作,但我总是得到一个 http 状态码302

我的 jQuery 看起来像这样:

$('#file_upload').uploadify({
        'swf'      : '<?php echo $this->basePath('/swf/uploadify.swf') ?>',
        'uploader' : '<?php echo $this->url('my-module', array('action'=>'uploadify')) ?>',
        'debug': true,
        'preventCaching'  : false
    });

当我通过浏览器调用我的操作时,它可以工作。当我通过浏览器调用 swf 时,我得到一个 200 - 所以它也可以工作。

我检查了uploadify-forum,但他们的解决方案要么不起作用,要么与ZF1规范有关......

4

2 回答 2

1

这是一个 flash cookie 错误,解决方案是重新启动会话

注意:我只在 unix/linux 上测试过

 class Module
{
    public function onBootstrap($e)
    {
        $eventManager = $e->getApplication()->getEventManager();
        $eventManager->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onApplicationPreDispacth'), 100);

    }

    public function onApplicationPreDispacth($e)
    {
         $session_name = session_name();

         if (isset($_POST[$session_name])) {
              session_destroy();
              session_id($_POST[$session_name]);
              session_start();
         }
    }

此功能的优先级必须高于您发布 302 重定向的功能

在javascript中:

$('#file_upload2').uploadify({
        'buttonText' : 'select files',
        'swf'      : '/static/lib/uploadify/uploadify.swf',
        'uploader' : '/service/upload',
        'auto'     : true,
        'formData' : voice : {"<?php echo session_name();?>" : "<?php echo session_id(); ?>",'source':'voice'}
        } 
        // Put your options here
    });

在 zend 框架 2 中使用 uploadify我刚刚写了这个

于 2014-01-09T14:41:54.863 回答
0

我只是使用另一个上传器解决了这个问题。无论如何,Flash 上传已经过时了,所以我只使用了:http: //blueimp.github.com/jQuery-File-Upload/

如果您进行基本安装,它就可以工作(我保留了uploadify上传功能)。唯一的缺点是你必须手动设计上传......但如果你熟悉 Bootstrap 和 jQuery,那就不是那么棘手了。

于 2013-01-10T10:28:22.797 回答