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
[47504] 답변감사합니다. 고맙습니다.
leo21c [leo21c] 1593 읽음    2006-12-21 10:29
ayh 님이 쓰신 글 :
: 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 2702 2006/12/21
47504         답변감사합니다. 고맙습니다. leo21c 1593 2006/12/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.