2012-05-06 50 views
4

我试图让blueimp的jQuery文件上传与Cakephp一起工作。jQuery文件上传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". 

这是发生这种情况的原因吗?

回答

5

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

将它们放在任何需要的位置,例如将web文件放在webroot/js/jquery_file_upload /和webroot/css/jquery_file_upload中。

现在制作一个供应商目录叫做上传Handler。在这个目录里面复制粘贴UploadHandler.php

现在你差不多完成了。

现在按照以下步骤操作。

  • 查看您从here下载的文件复制粘贴示例代码。不要忘记给每个js和css文件以及形式的正确路径,确保文件输入类型的名称是文件[]
  • 现在创建了一个控制器动作,其中会发生真正的魔法。复制粘贴以下代码并将路径定义为您的要求。
<?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 for cakephp约定中。

干杯。