2011-02-11 14 views
1

私はノードタイプ/ノードタイプ/ノード/編集フォームをform_alterでカスタマイズしています。私のコンテンツタイプには、ファイルをコンテンツにアップロードするためのファイルフィールドがあります。 私がしたいのは、Ajaxで実行時に作成されるファイルへのリンクを変更してファイルボックスをカスタマイズすることです:Drupalコアを変更せずにどうすればいいですか?Drupal6:私はノード編集フォームのファイルアップロードリンクをカスタマイズする必要があります

あらかじめご挨拶ありがとうございます。 c。

+0

ファイル**のアップロード**または**既存の**ファイルへのリンク/ URLのいずれかを許可することを意味しますか? – berkes

+0

いいえ、アップロードしたファイルのURLを変更します(http://sitename/sites/default/files/123.jpgからhttp://sitename/index.php?q = my_function/123.jpg – Cris

+0

ファイルサーバー上の物理的な場所が必要です - ファイルを正常にアップロードしたいが、新しいリンクでアクセスできるようにしたいですか?より広い質問があります:あなたが探している最終結果は何ですか?私はノードフォームをハックすることなくこれを達成するためにいくつかのより簡単な方法を提案することができると思います。 – anschauung

答えて

1

あなたのプライベートファイルのディレクトリは、ドキュメントルートにすべきではありません。あなたがコメントで指摘するように、.htaccessルールでそれを隠すことはできません。

あなたが/var/www/sites/example.com/にDrupalを持っているとしたら、プライベートファイルをそのディレクトリに保存しないでください。 /var/www/sites/example.com/sites/default/private/files/は間違っています。

代わりに、ファイルを保存する必要があります。例えば。 /var/www/files/example.com/にあります。次に、Drupalの設定を変更して、絶対パスのパスを使用します。

大(r)サイトを実行している場合は、専用マウント(ドライブ、NFSなど)にファイルを保存することをお勧めします(例:/media/nfs-example-com/)。

+0

将来の参考として、これはファイルがプライベートに設定されている場合にのみ有効です。 – berkes

+0

大変!私はDrupalがすべてをセットアップしたときに狂っていました。ありがとうございます:-) – Cris

+0

さらに、apacheがそのディレクトリに*および*書き込みルールを読み込んでいることを確認してください。最良の選択肢は 'chmod ug + rw -R/var/www/files/example.com'と' chown -R www-data:www-data/var/www/files/example.com'です。 -dataはubuntu/debianのapache-userです。 CentOS/RedHat上のApacheです。 – berkes

0

はFileFieldにパスを試してください。

FileFieldにパスモジュールは、宛先パスとファイル名にノードトークンを使用する能力を追加することによってDrupalsコア・アップロード・モジュール、FileFieldにモジュールおよび他の多くのファイル・アップロード・モジュールのデフォルトの機能を拡張します。

http://drupal.org/project/filefield_paths

+0

のためにURLとして利用できないので、サイト/ default/files/private/name.jpgから別のURLへのリンクを変更する必要があります私の問題に対する解決策を見つけることはできません。私はそれを説明しようとします:私のコンテンツの種類で私はサイト/デフォルト/ファイル/プライベートにファイルをアップロードするファイルフィールドがあります。プライベートディレクトリは.htaccessによって保護されており、ユーザがブラウザから直接リンクを張ったときにアクセスを拒否します。私はindex.phpのようなURLを作った?q = my_function/file.jpg;関数my_functionでユーザーを確認し、承認されている場合はファイルをダウンロードさせます。問題は、ファイルをアップロードするときに、Drupalはhtaccess指令のために実行されないhttp://...../sites/default/files/private/file.jpgへのリンクを置きます。私はそれを変更する必要があります – Cris

+0

ああ、あなたはあなたのファイルへの外部ホットリンクから自分自身を保護することを意味します.htaccessでそのディレクトリを除外することによって?もしそうなら、ホットリンクをブロックするより良い方法は、次のような書き直し命令を使うことです:RewriteEngine on RewriteCond%{HTTP_REFERER}!^ http://(www \。)?yourdomain.com [NC] RewriteRule \ (jpg | jpeg | png | gif)$ - [NC、F、L] – jpstrikesback

関連する問題