Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
갱수님 파일업로드에서
팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다.
그런데 48k바이트 이상이 되니까 다음과 같은 에러가 나는 군요
--서버를 찾을 수 없거나 DNS 오류입니다.--
정말 치명적인 에러인데(요즘은 48k로 할수 있는게 없어서 ^^;)
소스부분중에 어느것을 수정하면 되는지요??
참고로 NT4.0에서 델파이 cgi가 돌아가고 있습니다.
수고스럽겠지만 이부분이 막혀서 아무것도 못하고 있네요
빠른 답변을 부탁 드립니다.
좋은 주말 보네세요...
1
COMMENTS
갱수
•
2000.04.02 06:49
송성준 wrote:
> 팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다.
>
> 그런데 48k바이트 이상이 되니까 다음과 같은 에러가 나는 군요
>
> --서버를 찾을 수 없거나 DNS 오류입니다.--
>
> 정말 치명적인 에러인데(요즘은 48k로 할수 있는게 없어서 ^^;)
>
> 소스부분중에 어느것을 수정하면 되는지요??
>
> 참고로 NT4.0에서 델파이 cgi가 돌아가고 있습니다.
>
> 수고스럽겠지만 이부분이 막혀서 아무것도 못하고 있네요
>
> 빠른 답변을 부탁 드립니다.
>
> 좋은 주말 보네세요...
안녕하세요^^
지금 테스트 해봤는뎅 3Mb가도 한 12초 정도걸리지만(-.-) 업로드가 되네요...^^
소스보면 제가 오타가 난게 있구요
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables,Graphics, Jpeg;
type
TWebModule1 = class(TWebModule)
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
strSaveAs, strSaveFrom, strSep, strReceived, strAdd: String ;
iTmp, iTotal: integer ;
F: File of char ;
Ticks: dword ;
begin
iTotal := Request.ContentLength ;
strReceived := Request.Content ;
Ticks := GetTickCount ;
if Length (strReceived) < iTotal then
repeat
strAdd := Request.ReadString (iTotal - Length(strReceived)); <= 오타가 났었네요,,,-.-
iTmp := Length (strAdd) ;
if iTmp > 0 then
begin
ticks := GetTickCount ;
strReceived := strReceived + strAdd ;
end ;
until (Length (strReceived) >= iTotal) or (GetTickCount - Ticks > 3000) ;
iTmp := pos (#13#10, strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('파일형태전송안됨') ;
StrSep := Copy (strReceived,1, iTmp - 1) ;
delete (strReceived, 1, iTmp + 1) ;
iTmp := pos ('name="', strReceived) ;
if iTmp = 0 then
raise Exception.Create ('Could not find name to save file as') ;
delete (strReceived, 1, iTmp + 5) ;
iTmp := pos ('"', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('저장파일이름 못찾음') ;
strSaveAs := Copy (strReceived, 1, iTmp - 1) ;
iTmp := pos ('filename="', strReceived) ;
if iTmp = 0 then
raise Exception.Create ('업로드 파일 못찾음') ;
delete (strReceived, 1, iTmp + 9) ;
iTmp := pos ('"', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('업로드파일이름 못찾음') ;
strSaveFrom := Copy (strReceived, 1, iTmp - 1) ;
delete (strReceived, 1, iTmp + 1) ;
for iTmp := Length (strSaveFrom) downto 1 do
case strSaveFrom[iTmp] of
'.': begin
strSaveAs := StrSaveAs + Copy (strSaveFrom, iTmp, Length (strSaveFrom)) ;
break ;
end ;
'', '/', ':': break ;
end ;
iTmp := pos (#13#10#13#10, strReceived) ;
if iTmp = 0 then
raise Exception.Create ('Could not find start of file to save') ;
delete (strReceived, 1, iTmp + 3) ;
iTmp := pos (#13#10+strSep+ '--', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('Could not find end of file to save') ;
SetLength (strReceived, iTmp - 1) ;
AssignFile (F, strSaveAs) ;
Rewrite (F) ;
for iTmp := 1 to Length (strReceived) do
Write (f, strReceived[iTmp]) ;
CloseFile (F) ;
response.content := '저장되었습니다.';
end;
end.
--------------------------------------------------------------------------------
저장된 파일은 c:winntsystem32 폴더에 $$UPLOAD.전송한 확장자명..
으로 저장이 됩니다.
저도 NT IIS 서버를 사용했구요 ISAPI방식으로 테스트 해봤구요. 일단 로컬해서 해봤구요.
> --서버를 찾을 수 없거나 DNS 오류입니다.-- 오류는 일단 500번에러가 발생하면 서버프로그램에서 에러가 발생한건데 위와 같은 에러는 글쎄요.. 웹서버가 죽었거나 컴퓨터가 죽어있는데 에러가 발생할텐데....
그럼 서버가 부하가 걸려서 죽는건가요? 이 허름한 소스 상에서는 저장이 되니 제가 어떻게 수정해야할지에 대해서는 뭐라 말씀드릴수가 없겠네요..
에궁 초보라성....-.-
꼭 해결하세요^^
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
초보자
•
2000.04.03 07:00
2
COMMENTS
/
0
LIKES
1+(1+1/2)+(1+1/2+1/3)+(1+1/2+1/3....1/n)
어린왕자
•
2000.04.04 04:38
초보자 wrote: > 1+(1+1/2)+(1+1/2+1/3)+(1+1/2+1/3....1/n) > 이거.. > 어케 하나여? > 꼭 알켜 주세...
최용일
•
2000.04.03 18:54
안녕하세요. 최용일입니다. 흠.... 여기는 학교에서 내준 숙제하는 곳이 아닌데요. 다음부터 이런건 ...
Musa L.
•
2000.04.03 05:10
2
COMMENTS
/
0
LIKES
묻자옵나이다.
차카게살자
•
2000.04.04 02:17
Musa L. wrote: > 고수님들께 공부를 시작하기 전에 원초적인 것을 묻자옵니다. > > 책을 보았더니 ...
홍세비
•
2000.04.03 05:43
Musa L. wrote: > 고수님들께 공부를 시작하기 전에 원초적인 것을 묻자옵니다. > > 책을 보았더니 ...
김일영
•
2000.04.03 03:53
1
COMMENTS
/
0
LIKES
FindVCLWindow로 다른 App.을 조사할 순 없는겁니까?
소지영
•
2000.04.03 07:09
안녕하세요. 소지영 입니다. 델파이코리아(http://www.delphikorea.com)의 Q&A에 답변해 놓았습니다. ...
까치
2000.04.03 01:48
0
COMMENTS
/
0
LIKES
FTP 멀티로 동시에 띄워는 게 가능한가요?
이승현
2000.04.02 20:41
0
COMMENTS
/
0
LIKES
install shield 에 대한 unintall파일만드는법.?
이용현
•
2000.04.02 09:06
4
COMMENTS
/
0
LIKES
윈도우 시작 프로그램에 자기가 만든 프로그램 등록법..
류종택
•
2000.04.02 13:18
시작프로그램 폴더 말고.. 래지스트리를 이용하는 방법도 있습니다.. 아래를 참고하세요.. From 류....
이용현
•
2000.04.02 14:39
많은 도움이 댔어요 감사합니다... 감사합니다.. 류종택 wrote: > 시작프로그램 폴더 말고.. > 래지...
최용일
•
2000.04.02 09:46
안녕하세요. 최용일입니다. 윈도우 시작 프로그램 메뉴에 있는 항목들은 모두 바로가기 파일들입니다. ...
이용현
•
2000.04.02 14:39
많은 도움이 댔어요 감사합니다... 감사합니다.. 최용일 wrote: > 안녕하세요. 최용일입니다. > ...
김동길
•
2000.04.02 07:52
1
COMMENTS
/
0
LIKES
영문/한글 전환시 에러 발생
HART
•
2000.04.12 21:57
저기 혹시 imemode가 imDisable인 상태가 아닐까 하는데.. 이 상태가 되면 영문만 입력됩니다. 그리고 중용...
나요
2000.04.02 07:03
0
COMMENTS
/
0
LIKES
Flat사용법좀...
송성준
•
2000.04.02 05:26
1
COMMENTS
/
0
LIKES
갱수님 파일업로드에서
팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다. 그런데 48k바이트 이상이 되니까 다음과 같은 에러가 나는 군요 --서버를 찾을 수 없거나 DNS 오류입니다.-- 정말 치명적인 에러인데(요즘은 48k로 할수 있는게 없어서 ^^;) 소스부...
갱수
•
2000.04.02 06:49
송성준 wrote: > 팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다. > > 그런데 48k바이트 이상이...
신녕기
•
2000.04.02 05:02
1
COMMENTS
/
0
LIKES
만든 dll에서 테이블을 조회한 후 오류가 발생합니다.
김수보
•
2000.04.03 19:58
아마도 100% 메모리 핸들링에러입니다. 즉 A.Create로 실행시에 메모리에 컨트롤을 생성시킨 경우 반드시...
김후진
2000.08.13 08:47
0
COMMENTS
/
0
LIKES
pc-plc
윤진석
•
2000.04.02 03:20
1
COMMENTS
/
0
LIKES
다이내믹 MENU 생성?????????
최용일
•
2000.04.02 03:46
안녕하세요. 최용일입니다. DB와는 별 상관이 없는데요. 그냥 동적으로 생성해서 붙여주시면 됩니다. ...
이수정
•
2000.04.02 00:44
2
COMMENTS
/
0
LIKES
오늘 날짜와 시간을 구하는 함수가 따로있는가요???
김민석
•
2000.04.02 00:53
한개의 변수를 이용해서 오늘 날짜와 시간을 구할 수 있습니다. 코딩은 다음과 같습니다. procedure ...
구창민
•
2000.04.02 00:51
이수정 wrote: > 안녕하세요... > > DateTimePicker 라는 컴포넌트를 이용해서 날짜와 시간을 구할수는...
이현우
•
2000.04.01 23:21
5
COMMENTS
/
0
LIKES
dll 안에서 레지스트리가 동작이 안되요
최용일
•
2000.04.01 23:28
이현우
•
2000.04.01 23:37
최용일
•
2000.04.01 23:47
이현우
•
2000.04.02 00:02
최용일
•
2000.04.03 21:11
이현우
•
2000.04.01 23:10
2
COMMENTS
/
0
LIKES
dll 안에서 한글이 깨저서 나와요 도아주세요 지발
최용일
•
2000.04.01 23:21
안녕하세요. 최용일입니다 익스플로러에 보시면 보기메뉴에 인코딩이란 메뉴가 있습니다. 여기에서 ...
이현우
•
2000.04.01 23:43
답변주셔서 감사합니다 asp 에서 isapi dll로 값이 넘어가고 이곳에서 일를 처리하고 일반 app로넘어가 ...
이종행
•
2000.04.01 22:56
1
COMMENTS
/
0
LIKES
PC-PLC 통신에관해
Qtecman@chullian.net
•
2000.04.03 00:44
장진웅이라고 합니다... FA에 대한 프로토콜 문제라면 ..고민이 많으시겠군요.. 먼저 미쓰비시 기종과 골...
혜진이
•
2000.04.01 22:16
1
COMMENTS
/
0
LIKES
image component에 jpg파일 로드할려면..
최용일
•
2000.04.01 22:33
안녕하세요. 최용일입니다. TJpegImage컴포넌트를 사용해보세요. 컴포넌트 팔레트에는 없지만 델파이 ...
손창호
2000.04.01 21:24
0
COMMENTS
/
0
LIKES
네크워크 서버 디비의 연결 checking에 관해서
오이군
•
2000.04.01 21:14
2
COMMENTS
/
0
LIKES
비베의 doevents와 같은 기능
김형선
•
2000.04.01 22:01
오이군 wrote: > 비베의Doevents나 파워빌더의 yield와 같이... > 다른 프로세스에게 시간을 주기위한 함...
이미나
•
2000.04.18 02:22
김형선 wrote: > 오이군 wrote: > > 비베의Doevents나 파워빌더의 yield와 같이... > > 다른 프로세스에...
이광민
•
2000.04.01 20:39
1
COMMENTS
/
0
LIKES
검색에서 따옴표 표시를 어떻게...
모승열
•
2000.04.02 03:05
Re : 안녕하세요 델파이에서 따옴표 표시는 ''두개로 합니다. 그러니까 안에 따옴표를 넣고 싶으면 ' '' ...
송성준
2000/04/02 05:26
Views
453
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다.
>
> 그런데 48k바이트 이상이 되니까 다음과 같은 에러가 나는 군요
>
> --서버를 찾을 수 없거나 DNS 오류입니다.--
>
> 정말 치명적인 에러인데(요즘은 48k로 할수 있는게 없어서 ^^;)
>
> 소스부분중에 어느것을 수정하면 되는지요??
>
> 참고로 NT4.0에서 델파이 cgi가 돌아가고 있습니다.
>
> 수고스럽겠지만 이부분이 막혀서 아무것도 못하고 있네요
>
> 빠른 답변을 부탁 드립니다.
>
> 좋은 주말 보네세요...
안녕하세요^^
지금 테스트 해봤는뎅 3Mb가도 한 12초 정도걸리지만(-.-) 업로드가 되네요...^^
소스보면 제가 오타가 난게 있구요
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables,Graphics, Jpeg;
type
TWebModule1 = class(TWebModule)
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
strSaveAs, strSaveFrom, strSep, strReceived, strAdd: String ;
iTmp, iTotal: integer ;
F: File of char ;
Ticks: dword ;
begin
iTotal := Request.ContentLength ;
strReceived := Request.Content ;
Ticks := GetTickCount ;
if Length (strReceived) < iTotal then
repeat
strAdd := Request.ReadString (iTotal - Length(strReceived)); <= 오타가 났었네요,,,-.-
iTmp := Length (strAdd) ;
if iTmp > 0 then
begin
ticks := GetTickCount ;
strReceived := strReceived + strAdd ;
end ;
until (Length (strReceived) >= iTotal) or (GetTickCount - Ticks > 3000) ;
iTmp := pos (#13#10, strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('파일형태전송안됨') ;
StrSep := Copy (strReceived,1, iTmp - 1) ;
delete (strReceived, 1, iTmp + 1) ;
iTmp := pos ('name="', strReceived) ;
if iTmp = 0 then
raise Exception.Create ('Could not find name to save file as') ;
delete (strReceived, 1, iTmp + 5) ;
iTmp := pos ('"', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('저장파일이름 못찾음') ;
strSaveAs := Copy (strReceived, 1, iTmp - 1) ;
iTmp := pos ('filename="', strReceived) ;
if iTmp = 0 then
raise Exception.Create ('업로드 파일 못찾음') ;
delete (strReceived, 1, iTmp + 9) ;
iTmp := pos ('"', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('업로드파일이름 못찾음') ;
strSaveFrom := Copy (strReceived, 1, iTmp - 1) ;
delete (strReceived, 1, iTmp + 1) ;
for iTmp := Length (strSaveFrom) downto 1 do
case strSaveFrom[iTmp] of
'.': begin
strSaveAs := StrSaveAs + Copy (strSaveFrom, iTmp, Length (strSaveFrom)) ;
break ;
end ;
'', '/', ':': break ;
end ;
iTmp := pos (#13#10#13#10, strReceived) ;
if iTmp = 0 then
raise Exception.Create ('Could not find start of file to save') ;
delete (strReceived, 1, iTmp + 3) ;
iTmp := pos (#13#10+strSep+ '--', strReceived) ;
if iTmp <= 1 then
raise Exception.Create ('Could not find end of file to save') ;
SetLength (strReceived, iTmp - 1) ;
AssignFile (F, strSaveAs) ;
Rewrite (F) ;
for iTmp := 1 to Length (strReceived) do
Write (f, strReceived[iTmp]) ;
CloseFile (F) ;
response.content := '저장되었습니다.';
end;
end.
--------------------------------------------------------------------------------
저장된 파일은 c:winntsystem32 폴더에 $$UPLOAD.전송한 확장자명..
으로 저장이 됩니다.
저도 NT IIS 서버를 사용했구요 ISAPI방식으로 테스트 해봤구요. 일단 로컬해서 해봤구요.
> --서버를 찾을 수 없거나 DNS 오류입니다.-- 오류는 일단 500번에러가 발생하면 서버프로그램에서 에러가 발생한건데 위와 같은 에러는 글쎄요.. 웹서버가 죽었거나 컴퓨터가 죽어있는데 에러가 발생할텐데....
그럼 서버가 부하가 걸려서 죽는건가요? 이 허름한 소스 상에서는 저장이 되니 제가 어떻게 수정해야할지에 대해서는 뭐라 말씀드릴수가 없겠네요..
에궁 초보라성....-.-
꼭 해결하세요^^