質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

7532閲覧

KCFinderでアップロードしたファイルの削除が出来ない

kuao23

総合スコア9

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2014/11/26 02:20

KCFinderを導入してファイルをアップロードしたのですが、
サーバブラウザからアップロードしたファイルを削除しようとすると、
「原因不明のエラーです。」と言われ、削除ができません。
どこを修正すればよいでしょうか?

フォルダ、ファイルのパーミッションは777で、config.phpは以下の様に設定しています。

lang

1// GENERAL SETTINGS 2 'disabled' => false, 3 'uploadURL' => "/home/uploads/", 4 'uploadDir' => "../../uploads/",
ponzu1990👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

http://kcfinder.sunhater.com/
Compatibilityに書かれている環境になっているでしょうか?

Webサーバのエラーログを見ることはできるでしょうか? なにか出ているかもしれません。
KCFinderのバージョンや、サーバ環境の情報、失敗しているファイルの具体的な情報がないと原因がわからないと思います。

ソースコードを覗いてみました。

lang

1!$this->config['access']['files']['delete'] || 2!isset($_POST['dir']) || 3!isset($_POST['file']) || 4!$this->checkFilename($_POST['file']) || 5(false === ($file = "$dir/{$_POST['file']}")) || 6!file_exists($file) || !is_readable($file) || !file::isWritable($file) || 7!@unlink($file)

この条件が真になる時にUnknown error.(日本語環境では原因不明のエラーです。)を出しているようです。

推測ですが、上記の条件を解読してみると、

  • ファイルの削除権限(KCFinderの設定)がない
  • ディレクトリパスが指定されていない(クライアント側)
  • ファイル名が指定されていない(クライアント側)
  • ファイル名が不正(下記の条件が真の時)

lang

1(basename($file) !== $file) || 2( 3 isset($this->config['_normalizeFilenames']) && 4 $this->config['_normalizeFilenames'] && 5 preg_match('/[^0-9a-z.\- _]/si', $file) 6)
  • ファイルが存在しない(サーバ上)
  • ファイルの読み込み(サーバ上)ができない
  • ファイルに書き込み(サーバ上)ができない
  • ファイル削除失敗

こんなところでしょうか。

投稿2014/11/26 02:37

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuao23

2014/11/26 03:32

ご回答ありがとうございます。 PHP5.4でGDはenabledになっており、apacheのエラーログには何も出ていませんでした。。。
kuao23

2014/11/26 03:48

情報不足ですみません。 サーバはdebian wheezyで、kcfinderはver3.12でした。 ファイルはtest.pdfやtest.xlsxなどです。 ファイルのアップロードは正常にでき、参照も上手く行ったのですが、削除だけが出来ません。 config.phpのパーミッション設定は // PERMISSION SETTINGS 'dirPerms' => 0777, 'filePerms' => 0777, 'access' => array( 'files' => array( 'upload' => true, 'delete' => true, 'copy' => true, 'move' => true, 'rename' => true ), 'dirs' => array( 'create' => true, 'delete' => true, 'rename' => true ) ), にしております。
kuao23

2014/11/26 04:16

頂いた推測からファイルパスが上手くいっていないのかと思い、 'uploadDir' => "", にしたら出来ました。 詳しくご回答頂き、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問