2013-07-29 4 views
1

대용량 파일을 업로드 할 수있는 시스템을 만들려고 했었습니다. 원래는 HTTP를 사용했지만 변경해야 할 설정에는 많은 문제가있었습니다. 그래서 나는 FTP로 그걸 줄 것이라고 생각했다.PHP와 FTP를 사용하여 원격 서버에 로컬 파일 업로드하기

이제 PHP에서 FTP 연결이 작동하고 찾을 수 있습니다. 폴더와 파일을 볼 수있을뿐만 아니라 디렉토리를 만들 수도 있습니다. 그러나 로컬 파일을 보류하고 업로드하는 방법은 알 수 없습니다. 그것.

저는 PHP 매뉴얼과 튜토리얼과 같은 정보와 튜토리얼을 많이 읽었습니다. nettuts에서 찾았습니다.하지만 저는 그것을하기가 힘듭니다. 이 튜토리얼에서는 로컬 파일을 업로드 할 수 있다고 말했지만 뭔가를 놓쳤을 것입니다. 여기

내가 사용하고 업로드 방법 :

public function uploadFile ($fileFrom, $fileTo) 
    { 
     // *** Set the transfer mode 
     $asciiArray = array('txt', 'csv'); 
     $extension = end(explode('.', $fileFrom)); 
     if (in_array($extension, $asciiArray)) 
      $mode = FTP_ASCII;  
     else 
      $mode = FTP_BINARY; 

     // *** Upload the file 
     $upload = ftp_put($this->connectionId, $fileTo, $fileFrom, $mode); 

     // *** Check upload status 
     if (!$upload) { 

       $this->logMessage('FTP upload has failed!'); 
       return false; 

      } else { 
       $this->logMessage('Uploaded "' . $fileFrom . '" as "' . $fileTo); 
       return true; 
      } 
    } 

내가 이것을 사용하여 파일을 업로드하려고 :

$fileFrom = 'c:\test_pic.jpg'; 

$fileTo = $dir . '/test_pic.jpg'; 

$ftpObj -> uploadFile($fileFrom, $fileTo); 

나는 이것이 내 컴퓨터에서 파일을 얻을 것이라고 생각 c :에 저장하고 대상에 업로드하지만 실패합니다 (이유를 모르겠 음). 그래서 조금 변경 한 후 $fileFrom = test_pic.jpg을 변경하고 원격 서버의 같은 폴더에있는 그림을 변경했습니다. 이 코드를 실행했을 때 스크립트는 한 위치에서 다른 위치로 파일을 복사했습니다.

그래서 로컬 컴퓨터의 파일을 서버로 보내려면 어떻게해야합니까?

미리 감사드립니다.

답변

3

이것을 사용하면 PHP 서버에서 FTP 서버로 파일을 업로드 할 수 있습니다. 실제로는 귀하의 목표로 보이지 않습니다.

이 PHP 파일에 제출하는 업로드 양식을 만드십시오. 이 파일을 임시로 서버에 저장 한 다음 FTP 서버에 업로드하십시오.

PHP 파일이 내 로컬 컴퓨터의 모든 파일에 액세스 할 수 있기 때문에 실제로 작동하면이 보안상의 주요 문제가 될 수 있습니다.

+2

나는 이것이 잘못된 길을보고 있다고 생각한다. 그래서 나는 여전히 파일을 HTTP를 통해 내 서버로 보낼 것이라고 말하면서 맞습니까? – ragebunny

+1

네, 맞습니다. –

관련 문제