2012-05-06 76 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約定中。

乾杯。