2012-10-16 3 views
0

PHP에서 사용자의 데스크톱에서 파일을 여는 방법이 있는지 파악하려고합니다. 즉, 사용자가 PHP 페이지에 표시된 파일 목록에서 파일을 선택합니다. , 그리고 사용자가 GUI에서 두 번 클릭 한 것처럼 해당 프로그램이 사용자의 바탕 화면에 열립니다. 잠시 동안 검색 한 후 COM 객체를 사용하여 복잡한 코드를 통해 가능하다는 것을 발견했습니다 PHP에서,하지만 그것은 Windows 사용자들에게만 효과가 있으며이 플랫폼에 무관심하게하려고 노력하고 있습니다.PHP에서 운영 체제로 파일 요청 열기

누구도이 작업을 시도하고 성공 했습니까?

+2

사용자는 컴퓨터에 어떤 종류의 소프트웨어가 있습니까? 아니면 사이트를 방문한 조 (Joe)에게도 작동하겠습니까? 나는 후자가 불가능하다는 것을 내기하기 때문에 (그리고 의도적으로 그렇게하는 것은 매우 위험한 작업이다). – MrLore

+0

@MrLore : 나는이 문제에 이미 보안 문제를 생각해 왔기 때문에 그것을 할 수있는 방법이 있다는 것을 희망하지 않는다. 적어도 그렇게 쉬운 것은 아니다. 나는 직장에서 내 브라우저에서 파일 목록을 가져올 수있는 (PHP 파일이 네트워크 공유에 있음) 사용자를 위해 PHP 시스템을 만들려고하고 있으며 그 목록에서 파일을 선택할 수 있습니다. 두 번 클릭 한 것처럼 편집 할 수 있도록 엽니 다. 그래서, 간단한 파일 관리 시스템의 종류. 아마도이 작업을 수행하는 다른 방법을 찾아야 할 것 같지만 요청할만한 가치가 있다고 생각했습니다. – inkswamp

+1

그것이 직장에 있다면, 확실히 당신은 당신이 기능을 원하는 컴퓨터에 뭔가를 설치할 수 있습니까? 그렇다면, 아마도 세스 (Seth)의 대답을 살펴보십시오 : http : // stackoverflow.com/questions/4200398/launch-file-on-clients-computer-from-php – MrLore

답변

1

"사용자 동의"프로세스가 오래 걸리거나 사용자가 자발적으로 (그리고 이상적으로) 의도적으로 일부 소프트웨어 구성 요소를 설치하지 않으면 사용자 컴퓨터에서 응용 프로그램을 실행할 수 없습니다.

가장 깨끗한 방법은 (서명 된!) Java 애플릿을 사용하는 것일 수 있습니다.

그렇지 않으면 당신이 시도하고 사용자가 적절한 프로토콜 핸들러로, 특정 프로토콜을 등록 할 수 있도록, 당신은 다운로드를 할 것이라고 및 불행히도 exec://format%20C%2C ;-)

로 링크를 차단하기 위해 사용자의 시스템에 설치할 수 있습니다 file : // 프로토콜은 (당연히) 제한되어 있습니다. 예를 들어 Firefox에서는 주소 표시 줄에 수동으로 "C : \"를 삽입하고 탐색하면 작동합니다 (다소). 을 클릭하면 링크가 (다소) 작동합니다. 다른 보안 컨텍스트 (예 : 인터넷)의 문서에있는 동일한 링크를 복사하면 작동하지 않습니다.

또 다른 가능성은 모든 인트라넷 클라이언트에 음, REXECd (대부분의 플랫폼에서 사용 가능) 또는 일부 복제를 백도어링하는 것입니다. 그런 다음 사용자가 클릭하면 PHP에서 사용자 워크 스테이션으로 명령을 보냅니다. 요즘 PC는 다중 사용자 플랫폼이므로, 어떻게해야 할 일을 결정하기 위해 빠른 legwork가 필요합니다. 예 : 리눅스 박스에서는 적절한 소유권과 DISPLAY 값을 가진 X 애플리케이션을 실행해야한다.

또한 사용자 플랫폼을 "인식"하고 사용자가 .sh 또는또는 .cmd 중 적절한 배치 파일을 다운로드하도록 할 수 있습니다. 그러나 다운로드하려면 클릭이 필요하고 실행 파일을 열려면 하나, 승인하려면 클릭해야합니다.

+0

아, 내가 생각하지 못했던 훌륭한 아이디어들. 나는 그 중 하나가 내 상황에 대해 어떤 형태로든 다른 방식으로 작동 할 것이라 확신한다. 의견을 보내 주셔서 감사합니다. – inkswamp

0

클라이언트에서 파일을 실행할 수 없습니다. 그것은 큰 보안 구멍이고 브라우저는 그렇게하지 않을 것입니다.

Windows에서는 ActiveX를 사용할 수 있지만 클라이언트는 ActiveX 구성 요소를 설치해야하며 많은 문제가 있습니다.

관련 문제