파일업로드 게시판과 API로 전송하기 해결이 안됩니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

파일업로드 게시판과 API로 전송하기 해결이 안됩니다. 정보

파일업로드 게시판과 API로 전송하기 해결이 안됩니다.

본문

몇일째 끙끙거리고 있는 문제가 있어서 조언을 좀 구합니다.
전문 지식이 부족해서 지금까지 여러방법을 테스트를 해봤는데 좀처럼 실마리가 안잡힙니다.

예로 그누보드 게시판 하나를 사진현상 주문 게시판으로 쓰려고 합니다.
주문 사진들을 zip파일로 압축해서 첨부하면 협력업체에서 제공하는 오픈API를 이용해 그쪽으로 전송하는 방식을 생각중입니다.
API에 접속하려면 아이디, 비번을 통해 접속해야 합니다.

해결해야 할 부분이
1. 업로드 되는 파일들이 최고 60메가 정도 입니다. 카페24 호스팅인데 .htaccess를 수정해서 60M로 바꿔도 Master Value가 21M로 변화가 없어 최고 21메가까지 뿐이 안올라갑니다. 아마도 active-x 이용하는 방식으로 풀어야할 듯 보입니다. 서버용량도 부족합니다. 다음, 네이버, 구글, 클라우드... 검색해봐도 api는 제공안하는 것 같구요.

2. 협력업체 API로 연결해서 파일을 전송할 때(Base64Binary로 보내야합니다) 전송되는 동안 서버가 먹통됩니다. 이건 어떻게 풀어야하는지 정말 답답하네요.
스킨에서 form태그 action을 협력업체로 해서 post하는 방법을 써봤는데 로그인이 안되면 안올라가구요. API로 로그인을 해도 연계는 안됐습니다. 그리고 post한 후 제 사이트로 돌아와야 하는데 그쪽에서 소스를 수정하지 않는한 파일 전송후 페이지가 그쪽 사이트로 넘어가 버립니다. 해당 php파일을 유튜브처럼 제 사이트로 되돌아오게 해줄수는 없다는군요.

Terrorboy님 유튜브 소스를 쭈욱 훌터보는데 API가 달라서 참고할 수 없는 듯 보입니다.

선배님들 조언좀 부탁드립니다.

일단 소스는 대충 아래와 같습니다.


[ upload.skin.php ]
 
<form action="<?=$g4[path]?>/upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="bf_file[]">
</form>
 
  
[ upload.php ]
 
<?
$tmp_file  = $_FILES[bf_file][tmp_name];
$filename  = $_FILES[bf_file][name];
 
$dest_file = "$g4[path]/data/file/upload/" . $upload[$i][file];
move_uploaded_file($tmp_file, $dest_file)
chmod($dest_file, 0606);

 
// 업로드한 파일 전송

$request = new SoapAPI();

$request->wsdlconnect("http:렵력업체/wsdl.php");
$request->login('아이디', '비번');
$request->uploadFile($dest_file, $filename);
 
// 업로드한 파일 삭제
@unlink($dest_file);
 
 
exit;
 
class SoapAPI {
    public $client;
    public $session;

    public function wsdlconnect($apiAddr) {
        $this->client = new SoapClient($apiAddr, array('trace'=>1) );
    }

    public function login($user, $password) {
        $this->session = $this->client->login($user, $password);
        $hasSession = strlen($this->session) >= 0 ? true : false;
    }

    public function uploadFile($dest_file, $fileName) {
        $fileHandle = file_get_contents($dest_file);
        $upload = array ('file'         => base64_encode($fileHandle),
                         'filename' => $fileName);
        $result = $this->client->submitFile($this->session, $upload);
    }
}
?>

댓글 전체

이런 문제는 curl을 이용하면 해결 할 수 있을 겁니다
내 서버에서 curl을 이용한 프로그램을 실행하여 상대방 서버에 업로드 하면 되니 업로드 후 어떤 페이지로 가느나냐는 문제는 전혀 없을 테구요
상대서버에 로그인이 필요하면 관리자 아이디 하나 만들어서 그 아이디로 로그인 하여 업로드 되게 하면 됩니다
문제는 curl 공부...
감사합니다. 안그래도 그쪽에서 처리된 이미지를 받아오는데 curl 명령을 몇개 쓰고 있습니다.
차근차근 배운게 아니라 Google 등에서 검색해서 될만한 것들은 다 갖다 붙였더니 오전에 했던 작업중에 curl 명령이 몇개있네요.
상대방 사이트에서 이미지 끌어다가 제 서버에 저장하는 식으로 사용했습니다.
그냥 단순한 php 용어가 아니었군요. 길을 열어주셨으니 공부하겠습니다.
균이님께 종종 훌륭한 조언을 많이 받습니다. 감사합니다.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT