【问题标题】:Implementation of Uploadify with Zend Framework使用 Zend 框架实现 Uploadify
【发布时间】:2010-10-01 07:47:45
【问题描述】:

好的,

我已经阅读并尝试了很多关于如何使用 Zend 框架实现上传的东西,我可能忽略了一些东西,但我完全被卡住了。看来我的操作没有被调用。

所有的uploadify都放在public文件夹内的一个目录中。

上传按钮在fancybox实例中调用,通过Fancybox的内联概念从同一页面(admin/images/index)的隐藏div加载。

所有的 jquery 东西都很好,上传也很好,每个文件都完成了。但文件不会删除到文件夹中。使用 uploadify.php 脚本进行测试时,一切正常。

控制台中没有错误。

在本地主机上测试 使用 Chrome 6.0.4 和 Firefox 6.3.6 测试 使用 uploadify 2.1 测试

这是我的 jquery 初始化代码:(我使用 loader 来使用 jquery 脚本)

Removed to keep post readable

我使用了不同的东西来调用文件,但它们都不起作用:

   Removed to keep post readable

这是我的 admin/images/upload 中的代码

    Removed to keep post readable

这是我的引导程序中用于 cookie 问题的代码:

    Removed to keep post readable

有人知道吗?我完全迷路了......

===================================== 编辑======= ==================================

问题仍然是我无法达到控制器操作。我已经更改了一些内容以便于测试。当前代码如下: 案例“jpg”: $validExtension = 真; 休息; 案例“JPEG”: $validExtension = 真; 休息; 案例“gif”: $validExtension = 真; 休息; 案例“PNG”: $validExtension = 真; 休息; 我不明白为什么不调用该操作..

另一个修改:

当前脚本:

案例“jpg”: $validExtension = 真; 休息; 案例“JPEG”: $validExtension = 真; 休息; 案例“gif”: $validExtension = 真; 休息; 案例“PNG”: $validExtension = 真; 休息;

uploadify.js 创建上传资源返回 HTTP 错误

我尝试了在uploadify论坛上找到的几种会话解决方案等等,但没有任何区别......

另一个修改

我进一步工作,并添加了上传资源

$this->acl->add(new Zend_Acl_Resource('upload'));

给了我未登录/无角色脚本的 html 输出,指向已知的会话问题。我将尝试几种解决方案,如果脚本有效,我会回来。

【问题讨论】:

标签: jquery zend-framework uploadify


【解决方案1】:

好吧,我把整件事都修好了。我发现上传必须添加为资源。 Flash 会话问题已通过插件修复,该插件位于 here

注意:目前仅在 localhost 进行测试

这就是脚本的外观:

index.phtml

<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
    $('#uploaderImages').uploadify({
        'uploader'      : '../../uploadify/uploadify.swf',
        'script'        : '<?php echo $this->baseUrl().'/admin/images/upload'; ?>',
        'cancelImg'     : '../../uploadify/cancel.png',
        'scriptAccess'  : 'always',
        'queueID'       : 'fileQueue',
        'folder'        : '../../uploads/images/original/',
        'multi'         : true,
        'auto'          : true,
    });
});
// ]]></script>

图像控制器:

public function uploadAction()
    {
        $tempFile = $_FILES['Filedata']['tmp_name'];
        $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
        $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
        move_uploaded_file($tempFile,$targetFile);
    }

并在您的 ACL 中添加资源:

$this->acl->add(new Zend_Acl_Resource('upload'));

如果我遇到更多问题,或者其他人遇到问题,请现在告诉我,我会用所需的更多信息更新此问题/答案。

在 Firefox 3.6 和 Chrome 6.0 中测试

编辑

上述解决方案适用于实时服务器,但仅适用于 Windows。在来自 Mac 的所有浏览器中,数据不会被发布。我找到了这里写的修复:http://slavi.biz/blog/using-uploadify-with-zend-framework-2009-08-30.html 在 windows 和 mac 上都可以正常工作。

【讨论】:

    【解决方案2】:

    根据我的发现,我遇到了一些类似的问题,因为 swf 和 upload.php 文件不在同一个目录中,并且目录权限已关闭。

    【讨论】:

      【解决方案3】:

      我看不到您在哪里禁用了视图渲染器。也许这就是问题所在。

      如果您已经有一个称为上传或索引的视图(基于您的编辑),您是否有布局? uploadfy 只需要一个字符串作为输出。

      所以你必须在你的动作中添加这行:

      $this->_helper->layout()->disableLayout();
      $this->_helper->viewRenderer->setNoRender(true);
      

      如果这不起作用,我建议您在没有 zend 框架的单独页面上进行测试,这样您就可以确切地知道发生了什么。

      另外,通过浏览器访问页面并告诉我们它是否正常工作(图像/索引或上传)

      最后,我还建议你使用 firebug 并分析请求。

      【讨论】:

      • @Rick 如果您尝试访问此 URL,发生了什么(图像/索引)?首先,您需要检查此页面是否有任何错误。二、不用zf也能用?
      • 我没有收到任何错误(php + jquery)。通过使用uploadify.php 文件,我可以在没有zf 的情况下让uploadify 工作。当我想使用某个动作时,我无法调用该动作,因此不会移动任何文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2012-01-07
      • 2014-05-25
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多