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というベンダー ディレクトリを 1 つ作成します。このディレクトリ内にUploadHandler.phpをコピーして貼り付けます。

これでほぼ完了です。

以下の手順に従ってください。

  • ここからダウンロードしたサンプルコードをファイルにコピーして貼り付けます。各jsおよびcssファイルに正しいパスを指定することを忘れないでください。フォームでは、ファイル入力タイプの名前が files[ ] であることを確認してください
  • これで、実際の魔法が発生するコントローラー アクションが 1 つ作成されました。次のコードをコピーして貼り付け、必要に応じてパスを定義します。
<?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 ファイルを配置しますが、cakephp の規則のために webroot 内に配置します。

乾杯。

于 2012-12-20T10:37:53.530 に答える