2010-02-01 4 views
1

사용자에게 파일 업로드를 요청하는 서버가있는 시나리오가 있습니다. 이 파일을 더 큰 저장 공간을 가진 다른 서버에 업로드해야합니다. 그런 다음 파일이 현재 서버에있는 원래 경로로 절대 경로를 가져와야합니다.원격 서버 (PHP)에 파일 업로드

파일 크기가 약 15MB가 될 수 있으므로 작은 파일이 아니므로 가능하면 두 번 업로드하는 것을 피하십시오 (서버에 업로드 한 다음 원격 서버로 푸시).

이것에 대한 어떤 방향으로도 감사하겠습니다.

답변

3

원격 서버가 웹 서버로도 실행중인 경우 업로드 양식을 만들고 제출 작업을 다른 서버로 이동할 수 있습니다. 이것의 단점은 일부 브라우저가 이것을 잠재적 인 보안 구멍으로 간주하고 페이지가 표시 될 때 사용자에게 경고하지만 파일 서버를 가리키는 주 웹 서버에 역방향 프록시 항목을 만들어이 문제를 해결할 수 있다는 것입니다.

+0

큰 파일 크기가 주어지면 진행률 표시 줄을 통해 중간 피드백 업로드를 사용자에게 제공 하시겠습니까? 또는 내가 얻으려는 최선의 회전 하중 GIF입니까? – BlueVoid

+0

진행률 표시 줄을 만드는 가장 간단한 방법은 플래시 기반 업 로더를 사용하는 것입니다. jcUpload 또는 swfUpload를 좋아하십시오. –

+0

플래시가없는 대안은 없습니까? – BlueVoid

0

웹에서 두 번째 서버에 액세스 할 수 있으면 html 양식을 저장소 서버에 게시 한 다음 첫 번째 웹 서버로 리디렉션하십시오. 리디렉션 중에 GET 쿼리 문자열을 통해 추가 변수를 전달할 수 있습니다.

당신이 좋아하는 숨겨진 양식에 고유 키를 지정하여 스토리지 서버에 직접 파일을 업로드 할 수
2

:

<form action="http://mystorage.com/upload" method="post"> 
    <input type="file" name="myfile" /> 
    <input type="hidden" name="key" value="asdf1234sadfasfd34565xx" /> 
</form> 

그리고 단순히 독특한 진술, 기본 서버에 스토리지 서버에서 편안 요청을 보내 키와 절대 경로 ... 또는 기본 서버가 파일 위치를 알 필요가있을 때 스토리지 서버에 "묻는"방법으로 절대 경로를 가져옵니다 ... 무한한 가능성이 있습니다!