1

私は自分のウェブサイトの管理パネルを作成するために codeigniter を使用しています。フロントエンドには多くの静的ページがあり、動的にする必要があるのはごくわずかであるため、フロントエンドには使用していません。そのため、コア PHP クエリでそれを行います。

写真のリンクを解除するための私のリンクは です。画像はコントローラーで、unlinkPhoto は関数で、32 は画像 ID です。

localhost/admin/index.php/images/unlinkPhoto/32

編集

ただし、私 localhost/uploads/testimage.jpg. の画像は codeigniter で画像のリンクを解除するためにそのフォルダーを指すにはどうすればよいですか。

4

1 に答える 1

3

適切なセキュリティ プロトコルを適用していることを確認する必要があります。そうしないと、誰かが GET リクエストを偽造して、アップロードしたファイル全体を削除する可能性があります。基本的な解決策は次のとおりです。

public function unlinkPhoto($photoId)
{
   // Have they specified a valid integer?
   if ((int) $photoId > 0) {
      foreach (glob("uploads/*") as $file) {
         // Make sure the filename corresponds to the ID
         // Caters for all file types (not just JPGs)
         $info = pathinfo($file);
         if ($info['filename'] == $photoId) {
            unlink($file);
         }
      }
   }
}

PHP 5.4 を使用している場合は、このコードをさらに削減できる可能性があります。

if (pathinfo($file)['filename'] == $photoId) {
   unlink($file);
}

彼らは配列の逆参照を(最終的に)実装したからです。この特定のコードはテストしていませんが。これはただのマニアックな補足です。

于 2013-01-28T23:16:11.200 に答える