미채택 완료
ASP ABCUpload4.XForm 다중 파일업로드시 파일명이 증발해버립니다.
Copy
<%'Dim useUTFDim sqlStr, goodsIMGNameSession.CodePage = 65001response.CharSet = "UTF-8"useUTF = Trueexec_mode = request("exec_mode")w = Request("w")Server.ScriptTimeOut = 3600 '파일업로드 기본 설정 Response.Expires = -10000 'Server.ScriptTimeOut = 300 Set theForm = Server.CreateObject("ABCUpload4.XForm") theForm.Overwrite = True '같은 파일 있을 때 덮어쓰기 가능으로 설정 theForm.MaxUploadSize = 8000000 '8M 업로드 가능 theForm.AbsolutePath = True '절대 경로로 접근 theForm.Maxuploadsize = 1024*1024*20 theForm.CodePage = 65001 Set FSO = Server.CreateObject("Scripting.FileSystemObject") dim fileName,fileSize Function GetUniqueName(strFileName, DirectoryPath) Dim strName, strExt '확장자가 없는 경우를 처리 if InstrRev(strFileName, ".") = 0 then Response.write "<script language='javascript'>" Response.Write " alert(""적절한 파일이 아닙니다. \n\n확장자가 있는지 확인해보세요"");" Response.Write " history.back();" Response.Write "</script>" Response.end End if strName = Mid(strFileName, 1, InstrRev(strFileName, ".") - 1) strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1) 'asp파일 업로드 불가 if strExt = "asp" or strExt = "asa" or strExt = "inc" or strExt = "bak" then Response.write "<script language='javascript'>" Response.Write " alert(""적절한 파일이 아닙니다. \n\n다시 올려주세요"");" Response.Write " history.back();" Response.Write "</script>" Response.end End if Dim bExist : bExist = True Dim strFileWholePath : strFileWholePath = DirectoryPath & "\" & strName & "." & strExt Dim countFileName : countFileName = 0 Do While bExist If (fso.FileExists(strFileWholePath)) Then countFileName = countFileName + 1 strFileName = strName & "(" & countFileName & ")." & strExt strFileWholePath = DirectoryPath & "\" & strFileName Else bExist = False End If Loop GetUniqueName = strFileWholePath goodsIMGName = strFileName '최종파일이름0 End Function Sub Exec_fileUp(newFile,deleteFile,deleteFilesize,DirectoryPath,num) Set theField = newFile(num+1) If theField.FileExists Then '만일 파일업을 했으면... strFileName = theField.SafeFileName '파일 명 strFileSize = theField.Length '파일 사이즈 '파일명을 정한다. strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1) strName = Replace(Date(),"-","") & Right(Session.SessionID,4) strFileName = strName & "." & strExt DirectoryPath = Server.MapPath(".") & "\bookstore\" if theField.Length > 8000000 then Response.Write "<script language=javascript>" Response.Write " alert(""8M 이상의 사이즈인 파일은 업로드하실 수 없습니다"");" Response.Write " history.back();" Response.Write "</script>" Response.end Else if Len(deleteFile) > 0 then '삭제 화일이 있을경우.. delfile = DirectoryPath & "\" & deleteFile If (fso.FileExists(delfile)) Then fso.DeleteFile(delfile) '파일을 지운다.. End if End if strFileWholePath = GetUniqueName(strFileName, DirectoryPath) '적합한 파일인지 체크한다. theField.Save strFileWholePath '파일을 저장한다. End if fileUpload = strFileName fileSize = strFileSize Else fileUpload = deleteFile fileSize = deleteFilesize End If End Sub '파일 업로드, 업로드 폼이 추가되면 아래 문장만 추가한다. 물론 파일명은 수정해야 한다.CALL Exec_fileUp(theForm.item("bo_image"),"","",DirectoryPath,0)CALL Exec_fileUp(theForm.item("bo_file1"),"","",DirectoryPath,0)CALL Exec_fileUp(theForm.item("bo_file2"),"","",DirectoryPath,0)
http://blog.daum.net/thecoolman/3797336
위 블로그를 통해 파일 업로드할 경우 서버내 저장까지는 성공하였습니다.
insert나 update 문에서 서버내 저장된 파일명을 가지고 와서 저장 시켜줘야 하는데...
goodsIMGName 이라고 할 경우, 3중 하나의 파일명의 이름만 출력이 되고 있습니다.
파일명 3개를 추출해야하는데...
생소한 ASP이다 보니...어려움이 많이 있습니다.
ASP 언어로 개발 경험이 있으신 선배 회원님들께 고개숙여 조언을 구해보고자 합니다.
부탁드립니다.
답변 1개
2016-08-04 (목) 17:28:14
dim fileUpload
CALL Exec_fileUp(theForm.item("bo_image"),"","",DirectoryPath,0)
file1 = fileUpload
CALL Exec_fileUp(theForm.item("bo_file1"),"","",DirectoryPath,0)
file2 = fileUpload
CALL Exec_fileUp(theForm.item("bo_file2"),"","",DirectoryPath,0)
file3 = fileUpload
해결했네요 ㅠㅠ
답변을 작성하려면 로그인이 필요합니다.