11

リンク解除を使用してphpで写真を削除しようとしています。以前に他のサーバーで使用しましたが、今回は機能しません。テストに絶対パスを使用しましたが、まだ機能しません:

私はそれを次のように使用しました: unlink('img1.jpg');

と :

unlink('http://www.mysite.com/img1.jpg');

そんな経験のある方お願いします。

4

7 に答える 7

7

URL は ulink 関数では許可されていません

これを使ってもらえますか

絶対パスを使用する方が安全です。ただし、このパスは動的に取得できます。

例:

getcwd();

PHP スクリプトの場所に応じて、変数は次のようになります。

$deleteImage =  getcwd() . 'img1.jpg';

unlink($deleteImage);

これをチェックして

bool unlink ( string $filename [, resource $context ] )

filename ファイル
へのパス。

したがって、ファイル名として文字列のみを取ります。

スクリプトを実行する場所からのパスでファイルにアクセスできることを確認してください。これは絶対パスの問題ではありませんが、相対パスの問題があるかもしれません。

于 2013-09-26T11:21:40.663 に答える
2

Linux または UNIX で unlink を使用する場合は、is_writable ( string $filename )の結果も確認する必要があります。 また、関数が false を返す場合は、fileperms ( string $filename )でファイルのアクセス許可を確認する必要があります。

たとえば、ftp ユーザーが ftp ごとにファイルをアップロードし、Web サーバーが別のユーザーとして実行されている場合など、ファイル許可は Web スペースでよくある問題です。

これが問題である場合は、次のことを行う必要があります

chmod o+rwd img1.jpg

また

chmod 777 img1.jpg

他のユーザーの書き込み (および削除) 権限を許可します。

于 2013-09-26T11:48:10.983 に答える
1

ファイルシステム パスを使用し、
最初に次のようにパスを定義します。

define("WEB_ROOT",substr(dirname(__FILE__),0,strlen(dirname(__FILE__))-3));

ファイルが存在するかどうかを確認し、存在する場合はファイルのリンクを解除します。

$filename=WEB_ROOT."img1.jpg";
if(file_exists($filename))
{
$img=unlink(WEB_ROOT."img1.jpg");
}
于 2013-09-26T11:30:51.240 に答える
0

画像が保存されているフォルダーから、スクリプトを記述しているファイルへの相対パスを指定します。ファイル構造が次のような場合:

-your php file
-images
  -1.jpg

then 

unlink(images/1.jpg);

または、フォルダのアクセス許可の問題が発生している可能性があります。あなたのファイルはサーバー上にありますか、それともローカルホストで実行していますか? サーバー上にある場合は、画像フォルダーに 755 のアクセス許可を与えます。

于 2013-09-26T11:27:43.930 に答える