4

我正在尝试让 blueimp 的 jQuery File Upload 与 Cakephp 一起使用。

一切都很好,除了我似乎在尝试删除已上传的内容时遇到问题。当我单击特定文件上的删除时,我在控制台中收到以下错误。

DELETE http://example.com.au/app/webroot/?file=logo%20%285%29.gif 404 (Not Found)
jquery.min.js:4XHR finished loading: "http://example.com.au/app/webroot/?file=logo%20%285%29.gif".

发生这种情况有原因吗?

4

1 回答 1

5

首先将所有必要的 js 和 css 文件放在 webroot 目录中。

将它们放在您需要的任何地方,例如将 js 文件放在 webroot/js/jquery_file_upload/ 中,将 css 放在 webroot/css/jquery_file_upload 中。

现在创建一个名为UploadHandler的供应商目录。在此目录中复制粘贴UploadHandler.php

现在你几乎完成了。

现在按照以下步骤操作。

  • 查看您从此处下载的文件复制粘贴示例代码。不要忘记为每个 js 和 css 文件提供正确的路径,并在表单中确保文件输入类型的名称是 files[]
  • 现在创建了一个控制器动作,其中会发生真正的魔法。复制粘贴以下代码并将路径定义为您的要求。
<?php
class ServicePicturesController extends AppController {

    var $name = 'ServicePictures';

    function upload()
    {
        $this->layout = "ajax";
        App::import('Vendor','UploadHandler',array<'file' => 'UploadHandler/UploadHandler.php'));

        $options = array
        (
            'script_url' => SITE_URL.'service_pictures/upload/',
            'upload_dir' => APP.WEBROOT_DIR.DS.'img'.DS.'offer_picture'.DS,
            'upload_url' => SITE_URL.'img/offer_picture/',
            'max_number_of_files' => 3,
            'thumbnail' => array
            (
                'max_width' => 150,
                'max_height' => 150
            )
        );

        $upload_handler = new UploadHandler($options, $initialize = false);
        switch ($_SERVER['REQUEST_METHOD'])
        {
            case 'HEAD':
            case 'GET':
                $upload_handler->get();
                break;
            case 'POST':
                $upload_handler->post();
                break;
            case 'DELETE':
                $upload_handler->delete();
                break;
            default:
                header('HTTP/1.0 405 Method Not Allowed');
        }
        exit;
    } ?>

我花了 2 个小时后成功完成并测试了它。

您也可以将数据库集成到其中。

随时问更多。

希望这对您和其他程序员兄弟有所帮助。

从我在第一步中提到的链接下载示例代码,请按照以下步骤操作。

根据需要放置 js 和 css 文件,但将其放置在 webroot 中以用于 cakephp 约定。

干杯。

于 2012-12-20T10:37:53.530 回答