A.attachディレクトリの中を確認し、ファイルの有無を確認してください。
- ファイルが有る場合
- 呼び出し時にファイル名を間違えていませんか?
- #ref(添付ファイル名)が有効なのはアップロードしたページのみです。別ページからファイルを参照する場合には、#ref(ページ名/添付ファイル名)あるいは#ref(添付ファイル名,ページ名)のように添付したページへのパスを加えてください。
- その他、Q. 添付ファイルが表示できないについてもご確認ください
- ファイルがない場合
- attachディレクトリのパーミッションを777で試してみてください。
- /etc/php.iniでfile_uploads = Offになっている場合にはOnに直してください。
- php.iniの設定で、phpinfo() のfile_uploads がno value、Off、未設定になっていないか確認してください。
- attach.inc.phpのupload_max_filesizeを超えていませんか?(Q. 添付ファイルのアップロードサイズの制限を変更したい参照)
- サーバーのLimitRequestBody設定を確認してください。(Q. 添付ファイルのアップロードサイズの制限を変更したい参照)
- サーバーがタイムアウトしていませんか。
- RedHat9、php-4.2.2-17.1以前の環境でApacheの設定ファイルにSetOutputFilter/SetInputFilterとAddTypeを同時に書くと画像ファイルのアップロードの際に不具合が発生するバグがありました。
AddType application/x-httpd-php .phpの行を削除することによって解決する場合があります。
A. まずは適当なテキストファイルと画像ファイルを用意し、それぞれを添付してattachプラグインが正しく動作しているか確認して下さい。そして別のファイルなら正しく添付および表示が出来るという場合には、以下の可能性を疑ってみてください。
- 呼び出し時にファイル名を間違えていませんか?
- 拡張子が間違っている
- ピリオドとカンマの書き間違い
- スペースが入ってしまっている
- 添付したのとは別のページから呼び出そうとしている(Q. 別ページに添付されたファイルを表示したい 参照)
- ファイルサイズが大きすぎる(Q. 添付ファイルのアップロードサイズの制限を変更したい参照)
- 添付自体が出来ない場合にはQ. 添付(attach)でファイルをアップロードできないを参照してください。
- 余計な文字やHTMLタグが追加されるせいで、ブラウザが正常に認識しない(テキスト以外のファイルをテキストと判別してしまうなど)
- 改造やカスタマイズをした時、そのファイルにそれらの文字を書き込んで、意図せずに出力させていませんか?(Q. PukiWikiのソースの日本語が化けています/改行が変になります など)
- *.phpファイルの末尾の?>の後ろに空白や改行が含まれていたら削除してください(環境依存による改行コード認識の違いなどで、無視されずにそのまま出力される事があります)
- PHPエラーが出ていませんか?(Q. Warning: Cannot modify header information - headers already sent by ( ~ ) など)
- レンタルサーバが、自動で広告を追加しようとしていませんか?(Q. バナー広告表示型サーバで運営すると添付やRSSなどが正しく動作しない参照)
- アクセス権の設定ミスなどで、ファイルにアクセスできない
- PHPから添付ファイルを認識できない場合、添付ファイル一覧に表示されない、エラーメッセージ「添付ファイルが見つからない」のみ出力される(見つけられないので、中身も出力されない)、などの問題が起こる事があります。
- ref プラグインで、画像形式の添付ファイルへ直接アクセスするように設定した場合は、ブラウザからもアクセスできるようにアクセス権を設定する必要があります。
A. バナー広告が自動で挿入されるサーバー(XREAやAAA! CAFE)などは、広告が自動挿入されないように(.htaccessファイルに LayoutIgnoreURI * を記述する)して、自分で広告を挿入する(pukiwiki.skin.phpに広告のタグを書き入れる)ようにする必要があります。
- ★ 質問箱/31 削済 :xrea.com で 添付した画像ファイルが表示されない
- ★続・質問箱/566 :広告が自動挿入されるサイトだと、添付ファイルが表示されない
- ★ 質問箱3/34 :(続・質問箱/566と同じ)
- ★ 続・質問箱/278 削済 :[XREA] での設置 添付ファイルのダウンロード
- ★ 質問箱/232 :[AAA! CAFE] aaacafe.ne.jp上にてファイルを添付するには
- ★ 続・質問箱/162 :[XREA] attachプラグインによるopenfileを行うと画像が表示されない
- ★ 続・質問箱/491 :バナー広告表示型サーバ(XREAやX-beatなど)で PukiWiki 1.4.x を用いた場合での attach や RSSでの不具合を回避するには
A. 添付したはずのページに添付できず、違う名前のページに保存しましたと表示されるような状況の場合、PHP.iniのdefault_charset と mbstring.http_outputを統一すると解決することがあります。
# その方のphp.ini mbstring.detect_order = auto # その方の環境向けの、訂正後のphp.ini mbstring.detect_order = UTF-8,ASCII,EUC-JP
"auto" が指定された場合、この文字列は 言語設定 (NLS) ごとに定義された エンコーディングのリストに変換されます。たとえば、言語設定が Japanese の 場合は "ASCII,JIS,UTF-8,EUC-JP,SJIS" です。
A. 質問箱/66 未解決?!
A. 質問箱/93
A. 質問箱/268 (設定不備)元タイトル 日本語のページに添付しようとするとそのページにうまく添付されない
A. 質問箱/156 PHP.ini の default_charset と mbstring.http_output の設定をすること
A. 質問箱/353
A. 質問箱/236
A. 続・質問箱/67
A. attach.inc.phpの、<a href="$script?を<a href="$script/$filename?と書き換えると解決することがあります。
A. 続・質問箱/356
A. 添付ファイル名が文字化けする場合、まずはmbstringが有効になっているかどうかを確認してください。またphp.iniの設定でmbstring.language = Japanese以外をコメントアウトすると解決することがあります。
A. pukiwiki.ini.phpで設定した管理者パスワード($adminpass)です。なおPLUGIN_ATTACH_PASSWORD_REQUIREがtrueになっている際に、添付ファイルを削除する時にはアップロード時に設定したパスワードが必要となります。(管理者パスワードでも削除可能です)
- 質問箱3/131の解釈違い
A. PukiWiki 1.4*なら、attachプラグイン(attach.inc.php)の中で添付機能を使える人を限定する設定が可能です。(PLUGIN_ATTACH_PASSWORD_REQUIRE)
A. XSS脆弱性(PukiWiki/Errata、http://sourceforge.jp/projects/pukiwiki/lists/archive/announce/2005-May/000091.html Errata: Default setting of file-attaching function allows XSS (- 1.4.5_1))対策として、現在デフォルトでパスワードが必要になっています。予期せぬ危険なファイルを添付される可能性のある公開のPukiwikiではパスワード認証を行うことを強く推奨します。認証を行わない設定にするにはattach.inc.phpのPLUGIN_ATTACH_UPLOAD_ADMIN_ONLY、PLUGIN_ATTACH_PASSWORD_REQUIREを変更してください。
A.XSS脆弱性(PukiWiki/Errata#qf91cd08)対策として、現在デフォルトでパスワードが必要になっています。予期せぬ危険なファイルを添付される可能性のある公開のPukiwikiではパスワード認証を行うことを強く推奨します。plugin/attach.inc.php を開くと先頭の方で動作設定できます。
A. 以下のような方法が提案できますが、より安全を高めるにはPukiwikiではなくWebサーバ側でSSLやプログラムの証明書(プログラムの改ざん防止)を組み合わせたシステムを構築したほうが良いでしょう。
- 管理者が適宜添付ファイルを凍結する (管理者に負担が集中しますので、一人体制の場合はお薦めしません)
- 管理者にしか添付ファイルを削除できない設定にする (管理者に負担が集中しますので、一人体制の場合はお薦めしません)
- 添付ファイルのMD5ハッシュを別の場所で公開し、それと突合せられるようにする(PukiWiki側は「詳細」画面から確認できます) -- ユーザーはいちいちMD5の突合せが必要
- 気になる情報: 同じMD5ハッシュを持ったファイルを、PS3で演算させて作ることが可能 http://journal.mycom.co.jp/news/2008/01/07/014/index.html
- [要改造] attachプラグインを改造して、アップロード者のIPを記録・表示できるようにする -- IP偽造には弱い
- [要改造] attachプラグインを改造して、アップロード者がアップロード時に入力したパスフレーズから生成したハッシュを記録・表示できるようにする -- (管理者パスワードと同程度であるが)盗聴には弱い
- 信頼性を確保できる別のファイルアップロード/ダウンロード手段を用意し、Wikiにはそこへのリンクのみを設ける(InterWikiなどで)。あわせて本家Wikiへのファイル添付は制限するか、MIME type を制限する。
A. 続・質問箱/567添付ファイルに対する閲覧認証設定 check_readableを考慮していないように見えるが
A. plugin/attach.inc.php に定義されている以下の箇所を変更することで対応できます。
// max file size for upload on PHP(PHP default 2MB) ini_set("upload_max_filesize","2M"); // max file size for upload on script of PukiWiki(default 1MB) define("MAX_FILESIZE",1000000);upload_max_filesize定義は、PHPとしてのアップロードサイズ制限値の変更です。PukiWiki での制限を緩和しても、PHP の制限に引っかかったら意味が無いですからね。
なお、ini_set("upload_max_filesize","2M"); としてスクリプト中でこの定義を設定変更できるのは、PHP 4.2.3 までです。セキュリティの関係でPHP 4.3.x 以降(含PHP 5.x)からは、PHP設定ファイル(/etc/php.ini など)にある同様の定義からでないと変更を受け付けなくなりました。
- 補足
/etc/php.ini では memory_limit > post_max_size > upload_max_filesize となるように下記の設定を変更する必要があります。
; Maximum amount of memory a script may consume (8MB) memory_limit = 8M ; Maximum size of POST data that PHP will accept. post_max_size = 8M ; Maximum allowed size for uploaded files. upload_max_filesize = 2Mphpの設定ディレクティブには次のように書かれています。
- post_max_size integer
POSTデータに許可される最大サイズを設定します。この設定は、ファイルアップロードにも影響します。大きなファイルをアップロードするには、この値を upload_max_filesize より大きく設定する必要があります。 configureスクリプトでメモリ制限を有効とした場合、memory_limitもファイルアップロードに影響します。一般的に memory_limit は、 post_max_sizeよりも大きくする必要があります。
/etc/php.ini を変更したら、Web サーバの再起動を忘れずに。
.htaccess が使える環境では、PukiWikiのあるディレクトリー内の.htaccess に
php_value post_max_size 16M php_value upload_max_filesize 16M等と記述する事でも、設定の変更が可能です。
※オフトピですが、添付するのに attach ではなく attachref プラグインを使っている場合には plugin/attachref.inc.php の上限も解除する必要があります。
A. 続・質問箱/544 結局問題ない:確認ポイントが纏まっている
A. ×続・質問箱/412
A. ×続・質問箱/558(大きいサイズのファイルを添付したい)
A. 1.4.6 から、ページの更新だけでなくファイルの添付でもメール通知が行われるようになりました。
詳しくは、Q. ファイルがアップロードされた時にもメールで通知して欲しいへ
A. 1.4.5_alpha以降、編集時のメール通知にページのURIと、編集を行ったクライアントのIPアドレスが付加されるようになりました。
A. PukiWiki 1.4.6 以降は、default.ini.phpの添付ファイルの一覧を表示する($attach_link)設定のオン/オフによって表示・非表示の変更が可能です。
- 質問箱3/64
- 質問箱3/161
- dev:BugTrack2/68 :添付ファイルの一覧を表示するフラグ($attach_link)が追加された
A. PukiWiki 1.4.6 以降は、default.ini.phpのattach_link(添付ファイルの一覧を常に表示する)設定を0にすることで、全ページの詳細欄を非表示に出来ます。
default.ini.php: 55行目付近 // 添付ファイルの一覧を常に表示する (負担がかかります) $attach_link = 1;また、特定のページでのみ詳細を非表示にしたい場合には、ページ内のどこかに#noattachと記述しておくことで、そのページだけ詳細欄を表示しないように改造出来ます。(dev:BugTrack2/68 を参照)
A.plugin/attach.ini.phpから
if (!check_readable($this->page,FALSE,FALSE))を探して、以下のように修正してください。
if (!(check_readable($this->page,FALSE,FALSE)&&check_editable($this->page,FALSE,FALSE))) { return str_replace('$1',make_pagelink($this->page),$_title_cannotread); }この改造によって何らかの副作用が発生する可能性があります。自己責任でどうぞ。
A. 続・質問箱/492
A. ×質問箱/384
A. 特に制限はなく、サーバの許容量によります。
- ★質問箱/352 :ひとつのページに添付できる添付ファイルの数に制限について
A. 上書きは出来ません。どうしても同名でアップロードしたい場合には元のファイルを削除してから添付してください。
A. 自作プラグイン/attach.inc.php・ref.inc.phpを使えば、tarアーカイブにまとめた複数のファイルを展開し添付することができます。
A. 質問箱3/213
A. 質問箱3/131
A. 質問箱3/131
A.自作プラグイン/deldel.inc.phpを利用して一括削除が行えます。
A. rename プラグインを使ってページ名を改名してください。
- ★質問箱/402 :ファイルが添付されているページ名を変更するスマートな方法はある? rename プラグインを使おう
A. 標準機能のリネームでページ名を変更すれば添付ファイルもまとめてリネームされます。
- 続・質問箱/211→ 添付ファイルを持つページをリネームするにはとも読み取れる
A. 添付ファイルは別ページからでも参照できるため、同じ添付ファイルを複数作る必要はありません。複数のページで同じファイルを表示させたい場合には#ref(添付ファイルのあるページ名/ファイル名)で呼び出してください。
- ★続・質問箱/217ありません。(reimyさんの答えをそのまま使えますね)
A. 自作プラグイン/mailbbs.inc.phpを使えば、メールを取り込んで画像つきページを作成することができます。
- ★質問箱/283 : 携帯メールからの画像を取り込むには
A. 通常の状態では、ファイル名が文字列として表示されるだけですが、skin/keitai.skin.phpの改造によって画像表示を行ったり、ファイル名に対してリンクを設けて画像を表示させることが可能になります。
// IMG タグ(画像)を文字列に置換 // With ALT option $body = preg_replace('#(<div[^>]+>)?(<a[^>]+>)?<img[^>]*alt="([^"]+)"[^>]*> (?(2)</a>)(?(1)</div>)#i', '[$2$3</a>]', $body); // Without ALT option $body = preg_replace('#(<div[^>]+>)?(<a[^>]+>)?<img[^>]+>(?(2)</a>)(?(1)</div>)#i', '[$2img</a>]', $body);
A. 自作プラグイン/attachlist.inc.phpによって下層の添付ファイル一覧が作成できます。
A. 通常、PukiWikiをインストールしたディレクトリの下のattachディレクトリに保存されています。どういう形で保存されているかは説明するよりも、ディレクトリ内を見たほうが早いかと思いますが、ファイル名・ファイル自体ともにエンコードされています。
A. ページ名を知りたいだけでしたら、cmd=filelist(添付ファイルの場合はplugin=attach&pcmd=list)が使えるでしょう。また自作プラグイン/filename.inc.phpで調べることもできます。dev:保守ツールやPukiWikiファイル名変換(http://rd.vector.co.jp/soft/winnt/net/se399805.html)などのソフトウェアもあります。
A. マルチバイト文字の扱いなどを考えると難しいでしょう。func.php 内に定義されている encode() と decode() のユーザ関数を利用して、ファイル名を生成・復元しているため、func.php 内のこれら関数の挙動を修正するこちによって実現は可能ですが、Pukiwikiの仮想ディレクトリ(ページ名/ページ名)や、マルチバイトに対するファイルシステムの扱い、また素の文字列を期待していないようなロジックがあると挙動がおかしくなることが予想されます。
A1. PukiWiki 1.4.6 以降は、default.ini.phpの添付ファイルの一覧を表示する設定($attach_link)をオフにすることで改善が期待できます。
A2. 最新のCVS版(plugin/attach.inc.php (r1.87 or r1.82.2.1) 以降)では、
「ファイルの詳細を表示しない時にも、一覧するすべてのファイルに対して、必要の無い重い処理(MD5 値の算出)を実行している」
という問題が解決されています。
A1. attach.inc.phpの中のmd5_file()とattach_mime_content_type()を呼び出す処理をコメントアウトすることで改善が期待できます。
A2. フッタの添付ファイル一覧を表示する設定の場合
最新のCVS版(plugin/attach.inc.php (r1.87 or r1.82.2.1) 以降)では、
「ファイルの詳細を表示しない時にも、一覧するすべてのファイルに対して、必要の無い重い処理(MD5 値の算出)を実行している」
という問題が解決されています。(attach_mime_content_type() 関連は、まだ未解決)
ただし、ファイルの詳細を表示する際にはMD5 値の算出(md5_file() の実行)を行うので、それを回避するには修正が必要です。
A. 続・質問箱/111 :→編集中に添付ファイルの一覧を確認したい → dev:BugTrack/407
A. 続・質問箱/153
A. 続・質問箱/161
A. 質問箱3/70 プラグインへのカスタマイズ他、dev:BugTrack/460
A. 過去のバージョンにおいてこのバグがありましたが、現在では修正されています。最新版をご利用下さい。
- ●質問箱/189 :対策済み
A. ●質問箱/236 :対策済み
A. 一部のWebページ収集ソフトによって、添付ファイルの削除が実行されてしまうことがあるようです。attach.inc.phpの管理者だけが添付ファイルを削除できるようにする設定を有効にしてください。
- ★質問箱/141 :添付を削除するロボットにファイルを削除されてしまった 対策済み?!
A. #ref(添付ファイル名)あるいは&ref(添付ファイル名)で表示することができます。
- ★質問箱/15 :画像ファイルを添付し、ページに挿入したい&ref プラグインを使いな
A. 別ページに添付されたファイルを参照する場合には、#ref(添付ファイルのあるページ名/添付ファイル名)あるいは#ref(添付ファイル名,添付ファイルのあるページ名)のように添付したページへのパスを加えてください。
A. 自作プラグイン/flash.inc.phpやsonots:Plugin/htmlinsert.inc.php/flashを利用することでFlashを表示することが出来ます。
A. 続・質問箱/6 設定の問題?! UPLOAD_DIR を変更や、パーミッションによる問題?
A. 自作プラグイン/imgr.inc.phpを利用することで、相対パスによる画像表示が可能となります。
- ●続・質問箱/56 自作プラグイン imgr.inc.php を使いましょう
A. bmpファイルのインライン表示には、そもそもPHPが対応していないためPukiwikiでbmp画像をインライン表示することは出来ません。bmpというフォーマット自体がファイルサイズも大きくWebで扱うには不向きな種類のものであるため、特別に理由がないのであればgif、jpg、pngといった別の種類のフォーマットを利用することをおすすめします。
A. 続・質問箱/230
A. 続・質問箱/456問題はカスタマイズの内容でした.原因の列挙や調査方法の紹介あり
A. 続・質問箱/6
A. はじめてのPukiWiki/17に例があります。画像をURL指定ではなく、別ページに添付したものを参照して使用する場合には
[[&ref(添付したページ名/画像名,nolink,ウェブ名);>ウェブのURL]]という書式で表記してください。
なお、過去の一部バージョンではBracketName などでエイリアスを使用すると、内部処理の不具合により問題が発生する場合があります。この場合は、対処済み(dev:BugTrack/669, dev:BugTrack2/65)の最新版に移行して下さい。
A. PukiWiki 1.4*のインライン型プラグイン(&ref)を使用し、各種パラメータを活用して下さい。
A. table内で添付ファイルを参照するには、PukiWiki 1.4*を利用しインライン型プラグイン(&ref)を使用してください。
- ★質問箱/142 :添付ファイルをtableで参照したい
A. refプラグインのサイズ指定オプションを利用してください。
A. refプラグインにzoomオプションがあります。拡大する際にはサイズの%指定が使えるでしょう。
A. 自作プラグイン/capriciousface.inc.php、自作プラグイン/randommes.inc.phpなどを利用できます。
- 続・質問箱/463スクリプトの提供あり←どこかに移動させないと削除対象になった時に厄介
続・質問箱/23と同様
画像を縮小表示するだけなら、refプラグインのオプションで可能ですが
BugTrackにあたるもの(質問の内容が、蓋を開けてみればバグ報告だったなど)や、WebTrackにあたるものや、状態が「不明」「保留」などは、使える内容はQ&Aに変換する。それ以外のものは「削除予定」のページへ書き込んで変換をしないようにする。
見出し行は全角144文字未満にすること!
リストをテンプレに流し込み→質問文および回答をまとめ(このとき、元の質問箱の番号などを消さないように)→元質問に削除予定案内を書き込み→削除予定を書き込んだ質問箱へは★印を記入し、コメントとして残す→全質問の変換が終了した後、コメントを削除。
削除予定案内の書き込みを保留。後でまとめてやったほうが効率的
既にまとめ済みの分についても更に統合したり並べ替えたりが必要。
一読だけでは理解できない所は捨て置いて別のを先に進行中。
refプラグインについてが混在しているのはこのままでOK?
***Q. >''Q.続き''~ >''A.'' [[削除予定]]: [[Q&Aに移動>Q&A/プラグイン/attachプラグイン]]