2010-03-15 4 views
4

다음 예제 운이하지 않았나요 :
Javascript File remove
Javascript FSO DeleteFile Method
Deleting a File자바 스크립트로 파일을 삭제하는 방법은 무엇입니까?

파일에 특별한 권한이 없습니다.
JQuery에는이 방법이 있습니까?

다른 페이지가로드 될 때 특정 파일을 웹 디렉토리에서 삭제해야합니다. 닫힌 네트워크에서 보안 문제가 없습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+2

ActiveX는 IE 브라우저에서만 작동합니다. http://stackoverflow.com/ : –

+0

확인, 감사들, –

+0

[1] [1] [도움이 링크를 방문 : 여기에 다른 사람이 이미 사용 JQuery와 및 아약스 .. 대답했다] 질문 :/2665832/deletting-files-in-javascript – saadk

답변

10

순수 자바 스크립트로는 수행 할 수 없습니다. 파일을 삭제하는 서버 측 스크립트에 대한 AJAX 호출을 사용하면 작동합니다.

3
당신은 HTTP를 통해 파일을 삭제할 수 없습니다 (물론 당신이 할 수있는 이론을하지만 구현 아니에요.)

가장 쉬운 방법은 작은 서버 측 스크립트를 설정하는 것입니다

(예 : ASP 나 PHP에서)와에

JavaScript에서 호출하십시오. 서버 측 스크립트에는 삭제를 수행 할 수있는 적절한 권한이 있어야하지만 그렇지 않으면 아무 문제가 없습니다. 시작이 같을 것이다 PHP에서

:

<? 

    // STILL INSECURE!!!! 
    // Do not use in any public place without authentication. 
    // Allows deletion of any file within /my/files 
    // Usage: filename.php?file=filename 

    $basedir = "/my/files"; 
    $file_to_delete = $_REQUEST["file"]; 

    $path = realpath($basedir."/".$file_to_delete); 
    if (substr($path, 0, strlen($basedir)) != $basedir) 
    die ("Access denied"); 

    unlink($path); 

?> 

는이 같은 스크립트를 부를 것이다 (완전 보안 하나에 솔루션을 확장하지 당신은 당신에있는 어떤 플랫폼 말을하지 않는 때문에) :

http://yourserver/directory/delete_file.php?file=directory/filename 
+0

저는이 코드를 빨리 읽는 사람을 위해 코드에서 경고를 다시 강조하고 싶습니다.이 코드는 스크립트가 허용 한 파일을 삭제할 수 있도록합니다. 절대 어디서나 업로드하지 마세요! –

+0

@ 리치 예. 기본 보안 (하드 코딩 된 기본 디렉토리에 대한 제한)을 추가했습니다. –

2

방문자의 브라우저에서 실행되는 JavaScript 만 사용하여 원격 서버의 파일을 삭제할 수 없습니다. 이 작업은 서버 측 스크립트로 수행해야합니다.

3

자바 스크립트는 파일을 삭제할 수 없으므로 심각한 보안 취약점으로 이어질 수 없습니다. 이러한 링크는 JS를 통해 처리되는 ActiveX 컨트롤 용입니다. 서버 측 언어를 사용하십시오.

1

완만 ​​한 방식으로이 작업을 수행하는 경우 HTTP DELETE request을 보냅니다.

jQuery의 ajax method에는 method 매개 변수를 사용하여 'DELETE'를 지정할 수 있지만 일부 브라우저에서는 지원하지 않을 수 있다고 명시되어 있습니다.

분명히 DELETE 요청을 받아들이는 웹 서버가 필요하며 joe 임의 방문자가 파일을 삭제할 수 없도록 일종의 인증/권한 부여를 적용해야합니다. 아파치의 mod_dav이 여기에서 시작하게 될 것입니다.

+0

.htaccess를 잊지 마십시오. – dclowd9901

1

자바 스크립트는 클라이언트 측 언어입니다. 따라서 서버에서 직접 파일을 삭제할 수는 없습니다. 사용자가 제공하는 모든 예제는 로컬 시스템의 파일 만 삭제할 수 있으며 서버는 삭제할 수 없습니다.

그러나 파일을 삭제하는 일부 서버 페이지 기능을 호출 할 수 있습니다.

1

JavaScript가있는 파일은 로컬에서 실행되므로 삭제할 수 없습니다. 따라서 외부 파일에도 손대지 않습니다.

PHP, RoR 또는 ASP와 같은 파일을 편집 할 수있는 서버 측 언어를 사용해야합니다.

그러나 jQuery를 사용하여 $ .get 또는 $ .post와 같은 AJAX를 통해 서버 측 코드를 호출 한 다음 서버 측 코드가이를 삭제하면 JS가 파일을 삭제하는 것처럼 보일 수 있습니다.

관련 문제