2009-10-15 3 views
5

사용자가 내 웹 사이트에 이미지를 업로드 할 수있는 PHP 웹 응용 프로그램이 있습니다. 단순히 HTML을 사용하여이 작업을 수행하고 있습니다. <form enctype="multipart/form-data">웹 개발 : 사용자가 내 CDN (Cachefly)에 직접 파일을 업로드하도록 허용하려면 어떻게해야합니까?

그러나 이러한 이미지를 웹 서버에 업로드하는 대신 해당 이미지를 내 CDN (Cachefly - 다른 서버)에 직접 업로드 할 수 있습니다.

가능 : 웹 응용 프로그램에서 다른 서버로 이미지를 직접 업로드 할 수있게하려면 어떻게해야합니까?

$target_path = "/home/www/example.com/uploads/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    // file has been uploaded **LOCALLY** 
    // HOWEVER, instead of it being upload locally, I would like the file 
    // to be directly uploaded to the CDN ('other' server) 
    ... 
} else{ 
    // error: file did not get uploaded correctly 
    .... 
} 

답변

0

물론 :이 도움이 경우

, 여기에 내 PHP 코드입니다.

코드에 어딘가에 "$ target_directory"변수가 설정되어야합니다. 그것은 그렇게 부름을받지는 않지만, 당신의 기능이 어떻게 설정되어 있는지에 대해 멸시하는 것은 그것이 어딘가에 있어야합니다. 파일을 가져올 디렉토리의 절대 경로를 사용하십시오. 디렉토리에 CHMOD를 지정하여 777로 지정하여 쓸 수 있습니다.

코드를 게시하면 더 도움이 될 수 있습니다.

+0

원래 게시글에 내 코드를 포함했습니다. – Tim

1

직접 다른 서버에 업로드하는 것이 가능하지 않다고 생각합니다. 틀릴 수도 있습니다. 비슷한 문제가있어서 PHP의 FTP 기능 (http://us3.php.net/manual/en/book.ftp.php)을 사용했습니다. 나는 중간 서버로 서버를 사용했는데, 서버에 파일을 업로드 한 다음 FTP를 대상 서버로 전송 한 다음 서버에서 파일을 삭제했습니다.

1

웹 서버에서 파일을받은 다음 파일 공유 또는 FTP를 통해 CDN으로 전송할 수 있습니다.

CDN이 웹을 향한 경우 파일을 업로드 한 후에 해당 서버로 요청을 재전송하고 웹 서버 양식으로 제어를 되돌릴 수 있습니다. 백 엔드에서 파일 전송을 수행하고 사용자를 웹 서버에 연결하는 것이 좋습니다.

+0

그건 내 질문의 핵심 포인트입니다.대신 나에게 업로드하는 데 후 FTP를 통해 내 CDN에 전달 ... 난 단순히 HTML 양식을 업로드, CDN에 직접 업로드 할 수 있습니까? – Tim

5

CDN의 경우에는 ... 처음에는 UR 서버에서 파일을 받고 CDN API를 사용하여 '버킷'에 업로드해야합니다. 내가 UR 서버에 디렉토리로 그것을 매핑하는 방법이 없다면 U는 CDN에 직접 업로드 할 수 있다고 생각하지 않습니다.

+0

내 CDN에서 서버의 내 파일 공유에 대한 FTP 액세스를 제공합니다. 그게 어떤 차이가 있습니까? – Tim

+0

사실 ... 프로세스는 다음과 같습니다. 1 : ur 서버에 업로드 된 파일을 가져옵니다. 2 : 백그라운드에서 FTP를 통해 배치 또는 단일 파일을 CDN으로 보내려면 PHP 스크립트를 작성하십시오. –

+0

그래서 짧은 대답은 "아니오"입니다. 파일 업로드를 위해 HTML FORM 업로드 지점을 다른 서버에 직접 가질 수 없습니다. 그 맞습니까? – Tim

2
  • 서비스 또는이 아닌 직접 accesable 서버는 일반적으로 이
  • 이동/자신이 '소유'서버에 파일을 업로드하는 것은 할 수
  • 공급자의 API를 사용하여 수행됩니다에 대한 파일 업로드/이동 PHP + FTP 확장 기능 사용 (자세한 내용은 pear.php.net 또는 pecl.php.net)
  • 자신이 소유 한 서버로 파일을 이동/업로드하는 것은 일반적으로 1에서 임시 파일을 업로드하여 수행됩니다 서버와 이후에 .sh, .bash 또는 다른 서버로의 추가 전송 프로세스를 활성화하는 것으로 불리는 것. 문서 :
+0

Cachefly, 'other'서버는 파일을 업로드 할 수있는 FTP 액세스 권한을 제공합니다. 그래서, 내가 정확히 이해하고 있는지 확인하기 위해서 ... 나는 파일을 내 서버에 먼저 업로드 한 다음 FTP를 Cachefly에 업로드합니다. 그래서 당신이 말하는 것은 최종 사용자가 HTML 형식을 사용하여 Cachefly에 직접 업로드하도록 할 수는 없다는 것입니다. – Tim

+0

내 이해가 맞습니까? – Tim

+0

맞아요. 서버상의 업로드 프로세스를 그대로 둘 수있는 솔루션을 전혀 몰랐습니다. –

0

예 아마존 웹 서비스는 이미 사용자의 브라우저에서 직접 아마존 S3에 업로드 할 수 있습니다 http://doc.s3.amazonaws.com/proposals/post.html S3 버킷이 아마존 CDN (또는 다른 CDN을 통해 노출 될 수 있음을 또한

그 수

+3

그건 제안입니다. '문서화'가 아닙니다. 누구나 알고 있겠지만 아마존은 실제로 이것을 허용합니까? – Cole

+0

그 사실을 알고있는 것도 좋을 것입니다. – xiankai

관련 문제