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

これはフラッシュ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();
         }
    }

この機能の優先度は、302redirctiを投稿したものよりも高くする必要があります

そして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

別のアップローダーを使用するだけで問題を解決しました。とにかくフラッシュアップロードは古くなっているので、私はちょうど使用しました:http: //blueimp.github.com/jQuery-File-Upload/

基本インストールを行うと、それは機能します(uploadifyアップロード機能を維持しました)。唯一の欠点は、アップロードを手動で設計する必要があることです...ただし、BootstrapとjQueryに精通している場合はそれほど難しいことではありません。

于 2013-01-10T10:28:22.797 に答える