반응형
start | toatee
http://blog.naver.com/toatee/20015181007
http://blog.naver.com/toatee/20015181007
<!-- #include virtual = "/include/inc/NoCache.inc" --> <!-- #include virtual = "/lib/dbCon.asp" --> <% Set theForm = Server.CreateObject("ABCUpload4.XForm") theForm.AbsolutePath = True '절대경로 사용가능 theForm.Overwrite = True '덮어쓰기 가능 theForm.CodePage = 949 '한글파일 가능하게 %> <%'----답변쓰기에서 넘어온 변수 / 에러시 항목을 다시 글쓰기 폼으로 전송 해야됨----%> <form name="frmReplyBack" method=post action="tourphoto_wmd.asp"> <input type="hidden" name="BBS_Num" value="<%=theForm("BBS_Num")%>"> <input type="hidden" name="WriteGB" value="<%=theForm("WriteGB")%>"> <input type="hidden" name="gotopage" value="<%=theForm("gotopage")%>"> <input type="hidden" name="cate_sub" value="<%=theForm("cate_sub")%>"> </form> <% Dim Name, Title, Email, Content, Cate_Sub Dim Re_Num, Re_Step, Re_Level Dim theForm,AttachFile dim DirectoryPath,File,FileName,FileSize,FileWholePath ' ON ERROR RESUME NEXT Name = Trim(theForm("txt_Name")) Email = Trim(theForm("txt_Email")) Cate_Sub = Trim(theForm("cob_Cate_Sub")) Title = Trim(theForm("txt_Title")) Content = Trim(theForm("txt_Content")) Re_Num = Trim(theForm("Re_Num")) Re_Step = Trim(theForm("Re_Step")) Re_Level = Trim(theForm("Re_Level")) DirectoryPath = Server.MapPath("SaveImageFiles") '이미지가 저장될 절대경로 Set File = theForm("AttachFile")(1) '+++++++++++++파일 업로드+++++++++++++= If File.FileExists Then FileName = File.SafeFileName FileSize = File.Length ' FileType = File.FileType if FileSize > 700000 then Response.Write "<script language=javascript>" Response.Write " alert('700KB 이상의 사이즈인 파일은 업로드하실 수 없습니다');" Response.Write " history.back(-1);" Response.Write "</script>" Response.end else FileWholePath = GetUniqueName(FileName, DirectoryPath) File.Save FileWholePath End if End if '++++++++++완료++++++++++++++++++ '----------------------------------------- '최재남-------- '파일이 올바르게 저장되었으면 dbInsert 하고 '아니면 에러 보내면서 다시 저장 하게 한다. '올바르게 저장 되었는지 아는 방법은 asp의 파일 객체를 '생성해서 체크한다. 위의 파일명을 가지고 같은 파일이 '있는지 폴더에서 찾는다. '-------------------------------------------- DIM FSystem, Folder_Dir, F1, AllFileCount Dim FileSaveYUMU SET FSystem = CreateObject("Scripting.FilesystemObject") SET Folder_Dir = Fsystem.GetFolder(DirectoryPath) '폴더지정 Set AllFileCount = Folder_Dir.Files '--모든파일을 가져온다 Const DeleteReadOnly = True 'FileSaveYUMU : 파일이 있는지 없는지 구분하는 변수 '초기값 없는 것으로 셋팅 FileSaveYUMU="MU" For Each F1 in AllFileCount IF instr(F1.Name,FileName) <> "0" Then 'FileName : 찾고자 하는 파일명 FileSaveYUMU="YU" Exit For END IF Next Set FSystem = Nothing Set Folder_Dir = Nothing Set AllFileCount = Nothing '파일이 저장되었다면 dbInsert 해준다. IF FileSaveYUMU = "YU" Then Call dbConnect() DBCon.BeginTrans IF theForm("WriteGB")="reply" Then '답변이다. SQL = " Update TB_TOUR_BBS_TBL Set Re_Step = Re_Step + 1 " SQL = SQL & " Where Re_Num=" & Cint(Re_Num) & " And Re_Step > " & Cint(Re_Step) DBcon.Execute(SQL) Re_Step = Re_Step + 1 Re_Level = Re_Level + 1 ELSE SQL = " SELECT Case When Max(BBS_Num) IS Null Then 1 ELSE Max(BBS_Num)+1 End As Max_Value " SQL = SQL & " From TB_TOUR_BBS_TBL " SET RS = DBCon.Execute(SQL) Re_Num = RS(0) Call RSClose() Re_Step = 0 Re_Level = 0 END IF SQL = " INSERT INTO TB_TOUR_BBS_TBL Values(" SQL = SQL & "'001003'" '-- 여행과사진 SQL = SQL & ",'" & Cate_Sub & "'" SQL = SQL & "," & Cint(Re_num) SQL = SQL & "," & Cint(Re_Step) SQL = SQL & "," & Cint(Re_Level) SQL = SQL & ",'" & Title & "'" SQL = SQL & ",'" & Replace(Content,"'","") & "'" SQL = SQL & ",'" & Name & "'" SQL = SQL & ",'" & Email & "'" SQL = SQL & ",0" '--댓글갯수 SQL = SQL & ",0" '--조회수 SQL = SQL & ",getdate()" '--등록일 SQL = SQL & ",'" & DirectoryPath & "\'" '--이미지경로 SQL = SQL & ",'" & FileName & "'" '--이미지파일명 SQL = SQL & ",'" & Request.Cookies("pamtour_client")("UserID") & "'" SQL = SQL & ",'" & Request.Cookies("pamtour_client")("CompCD") & "')" DBcon.Execute(SQL) IF Err.Number = 0 Then DBCon.CommitTrans Call DBClose() IF theForm("WriteGB") = "" Then '답변쓰기에서 온것이라면. Response.Redirect "./tourphoto_list.asp?Cate_Sub=" & theForm("Cate_Sub") ELSE Response.Redirect "./tourphoto_list.asp?Cate_Sub=" & Cate_Sub END IF ELSE DBCon.RollbackTrans Call DBClose() Response.Write "<script language='javascript'>" Response.Write "alert('시스템에 오류가 발생 했습니다.\n\n 다시 작성해 주세요.');" IF theForm("WriteGB") = "" Then '답변쓰기에서 온것이라면. Response.Write "document.frmReplyBack.submit();" ELSE Response.Write "history.back(-1);" END IF Response.Write "</script>" End IF Response.End ELSE '--파일이 올바르게 저장되지 않았다 Response.Write "<script language='javascript'>" Response.Write "alert('파일이 올바르게 저장되지 않았습니다.\n\n 다시 작성해 주세요.');" IF theForm("WriteGB") = "" Then '답변쓰기에서 온것이라면. Response.Write "document.frmReplyBack.submit();" ELSE Response.Write "history.back(-1);" END IF Response.Write "</script>" END IF '------------------------------------------------------------------------------------------------- '유니크한 파일경로및 파일이름을 얻어내는 함수 Function GetUniqueName(byRef FileName, DirectoryPath) Dim Ext, FileWholePath, countFileName Dim fso, Exist Name = Mid(FileName, 1, InstrRev(FileName, ".") - 1) '확장자를 제외한 파일명 Ext = Mid(FileName, InstrRev(FileName, ".") + 1) '확장자 Set fso = Server.CreateObject("Scripting.FileSystemObject") Exist = True '우선 같은이름의 파일이 존재한다고 가정 FileWholePath = DirectoryPath & "\" & Name & "." & Ext '저장할 파일의 완전한 이름(완전한 물리적인 경로) 구성 countFileName = 0 '파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅함. Do While Exist ' 우선 있다고 생각함. If (fso.FileExists(FileWholePath)) Then ' 같은 이름의 파일이 있을 때 countFileName = countFileName + 1 '파일명에 숫자를 붙인 새로운 파일 이름 생성 FileName = Name & "(" & countFileName & ")." & Ext FileWholePath = DirectoryPath & "\" & FileName Else Exist = False End If Loop GetUniqueName = FileWholePath End Function '-------------------------------------------------------------------------------------------------%>
반응형