C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[47501] Re:http이용 unix서버로 파일 업로드시 405에러 발생 이유가 궁금합니다.
ayh [h1800] 2701 읽음    2006-12-21 04:10
put 방식을 사용하신 코드 같습니다.
IIS냐 unix상의 apache냐가 문제가 아니라, put 방식을 지원하도록 설정했느냐 아니냐의 문제입니다.

put 방식은 말그대로 웹서버 상의 특정 디렉토리에 원하는 파일을 임의로 가져다 놓을 수가 있기 때문에 보안 상의 문제 등 여러가지 이유로 보통 설정상에서 꺼놓는 경우가 많습니다. apache 서버의 put 방식을 지원하도록 설정을 변경하신 후 테스트 해보시면 잘 될겁니다.

그러나, 일반적이 경우 put 방식은 대부분의 관리자들이 지원하지 않도록 설정하니 이 점도 유의하시는게 좋을 듯 합니다.

leo21c 님이 쓰신 글 :
: 아래와 같은 방법으로 MSDN에 있는 내용을 이용해서 WinInet의 함수들을 가지고 만들었습니다.
: UNIX 파일 서버에서 파일 다운로드는 문제없이 되는데 파일 업로드는 405에러가 발생하네요.
: WinInet함수들을 가지고 Unix로 파일 업로드는 불가능 한 건가요?
: 405에러라는 것이 Method Not Allowed라는 뜻인데....사용할 수 없다는 거 아닌가요?
:
: 제 컴퓨터는 WinXP로 IIS서버를 만들어서 테스트 할 경우에는 문제없이 작동하는 것을 확인했습니다.
: 그런데 Unix서버에 올릴때만 에러가 발생하네요.
: HTTP프로토콜을 이용해서 파일 업로드를 할 경우에 WinSock같은 것을 이용하는 것이 더 좋을까요?
:
: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:     //인터넷 연결
:     hInternet=InternetOpen("HTTPClient", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
:     if (hInternet==NULL) return false;
:
:     //URL을 연다.
:     hURL = InternetConnect(hInternet, serverAddress/*Host 헤더값, 서버 주소*/,  ServerURL.ID/*strID*/,  URL.PW/*strPassword*/,
:       INTERNET_SERVICE_HTTP, 0, 0);
:
:      //인터넷 파일의 핸들을 얻는다.
:     hRequest = HttpOpenRequest(hURL, "PUT", strRemoteFile, NULL, NULL,
:       0, INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE, 0);
:     if (!hRequest) goto exit;
:
:     //로컬 파일의 핸들을 얻고, 사이즈를 저장한다.
:     hLocalFile=CreateFile(strLocalFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
:     if(!hLocalFile) goto exit;
:     nFilesize = GetFileSize(hLocalFile, NULL);
:
:     cBuffer = (char *)malloc(nFilesize); //메모리 할당 사용.
:     if(!ReadFile(hLocalFile, cBuffer, nFilesize, &dwRead, NULL)) goto exit;
:
:     //리퀘스트를 보낸다.
:     bHttpSendRequest = HttpSendRequest(hRequest, NULL, NULL, cBuffer, dwRead);
:
:     //http header로 전송 결과 확인
:     if (!CheckSrvData(hRequest, Header, myParsedServerURL) || !(Header=="200" || Header=="201"))
:       goto exit;
:
:     //로컬파일 핸들을 마무리한다.
:     if (hLocalFile)
:       CloseHandle(hLocalFile);
:     //인터넷파일 핸들을 마무리한다.
:     if (hRequest)
:       InternetCloseHandle(hRequest);
:
:     return bHttpSendRequest; //bHttpSendRequest와 동일한 결과값을 리턴
:
:   exit:
:     //로컬파일 핸들을 마무리한다.
:     if (hLocalFile)
:       CloseHandle(hLocalFile);
:     //인터넷파일 핸들을 마무리한다.
:     if (hRequest)
:       InternetCloseHandle(hRequest);
:
:     return false; //bHttpSendRequest와 동일한 결과값을 리턴

+ -

관련 글 리스트
47489 http이용 unix서버로 파일 업로드시 405에러 발생 이유가 궁금합니다. leo21c 2685 2006/12/20
47501     Re:http이용 unix서버로 파일 업로드시 405에러 발생 이유가 궁금합니다. ayh 2701 2006/12/21
47504         답변감사합니다. 고맙습니다. leo21c 1593 2006/12/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.