2013-09-26 4 views
6

링크를 사용하여 PHP에서 사진을 삭제하려고합니다. 이전에 다른 서버에서 사용했지만 이번에는 작동하지 않습니다. 테스트를 위해 절대 경로를 사용했지만 여전히 작동하지 않습니다.PHP 링크 해제 작동하지 않음

나는 이것을 다음과 같이 사용했습니다 : unlink ('img1.jpg');

과 :

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

하시기 바랍니다 같은 경험을 가지고 누구?

+3

URL을 사용하여 삭제할 수 없습니다. '/ var/www/mysite.com/img1.jpg'와 같은 전체 파일 시스템 경로를 시도 했습니까? – Maerlyn

+0

오류가 있습니까? 어쩌면이 파일을 삭제할 수있는 권한이 없거나 파일이 서버의 다른 곳에있을 수 있습니다. http : // ... 주소와의'unlink'는 작동하지 않을 것입니다. 서버 경로를 사용해야합니다. – Jojo

+0

나는 그것을 다음과 같이 사용했다 : unlink ('img1.jpg'); 하지만 작동하지 않음 – Sunil

답변

6

URL도,

는이

그것은 더 나은 사용시겠습니까 ULINK 기능에 허용되는 절대 경로를 사용하는 것이 현명 안전에 없습니다. 그러나이 경로를 동적으로 가져올 수 있습니다.

예. 사용 :

getcwd(); 

당신의 PHP 스크립트는 위치에 따라, 당신의 변수는 다음과 같이 수 :

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

unlink($deleteImage); 

확인이

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

파일 이름
경로입니다.

는 그래서 은 파일 이름과 같은 문자열을 사용합니다.

스크립트를 실행 한 위치의 경로로 파일에 연결할 수 있는지 확인하십시오. 절대 경로에는 문제가 없지만 상대 경로가있는 경로가있을 수 있습니다. //이 지원되지 않습니다 : 지금, HTTP가

+1

getcwd()로 작업하고 있지만 절대 경로가없는 이유는 알지 못합니다. 어쨌든 감사 파텔. 등록자 : Sunil – Sunil

0

링크 해제가 unlink('http://www.mysite.com/img1.jpg');

사용과 작동하지 않습니다 대신 unlink($_SERVER['DOCUMENT_ROOT'].'img1.jpg'); //은

unlink($_SERVER['DOCUMENT_ROOT'].'dir_name/img1.jpg'); 

이 확인 issue.please 파일 권한이있을 수 있습니다, 현재 디렉토리 을 취하거나.

0

이미지가 저장되는 폴더와 스크립트를 쓰고있는 파일의 상대 경로를 지정하십시오. 파일 구조가 같은 경우 :

-your php file 
-images 
    -1.jpg 

then 

unlink(images/1.jpg); 

또는 어떤 폴더 권한 문제가있을 수 있습니다. 파일이 서버에 있거나 localhost에서 실행 중입니까? 서버에 있다면 이미지 폴더에 755 권한을 부여하십시오.

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"); 
} 
2

당신은 리눅스에 연결 해제 또는 유닉스 당신은 또한 is_writable (string $filename) 의 결과를 확인해야합니다 그리고 함수가 false를 반환하는 경우, 당신은 fileperms (string $filename)와 파일 권한을 확인해야합니다 사용하는 경우.

파일 사용 권한은 웹 공간에서 일반적으로 발생하는 문제입니다. FTP 사용자가 ftp 당 파일을 업로드하고 웹 서버가 다른 사용자로 실행중인 경우 이 문제가있는 경우

, 당신은

chmod를 오 + RWD img1.jpg

또는

chmod를 777 img1.jpg

에 할 수있다

다른 사용자의 권한을 쓰기 (및 삭제)합니다.