태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

컴포넌트를 이용해서 파일을 업로드 할 경우..
일부 컴포넌트는 파일명을 제공하는 함수가 없다.
그럴경우 사용

FileAry = Split(UploadForm("FileName"), "\")
FileName = FileAry (UBound(FileAry ))

예를들어.. 넘어온 파일명이 C:\Temp\Test.txt 일 경우 Test.txt만 남게 된당.



출처 : http://blog.naver.com/wishkjh/80029941778


<a href="download.asp?b_filename=<%=rs("b_filename1")%>"><*%=rs("b_filename1") %>


download.asp
<%
file = Request("b_filename")     '파일 이름
file = replace(file,"&","&")

Response.ContentType = "application/unknown"                    'ContentType 를 선언합니다.
Response.AddHeader "Content-Disposition","attachment; filename=" & file
                       '헤더값이 첨부파일을 선언합니다.
Set objStream = Server.CreateObject("ADODB.Stream")            'Stream 을 이용합니다.
objStream.Open                                                                  'Set 으로 정의했으면 열어야 함.
objStream.Type = 1
objStream.LoadFromFile Server.MapPath("./upload/")&"\"& file     '파일 경로명

download = objStream.Read
Response.BinaryWrite download
                     '이게 보통 Response.Redirect 로 파일로 연결시켜주는 부분을 대신하여 사용된 것
Set objstream = nothing                                                         '초기화
%>

출처 : http://blog.naver.com/levelup5/100005916687
Tag // 다운로드

<!--++++++++++++++++++++++++++++++++++++++++++++++++++테스트++++++++++++++++++++++++++++++++++++++++++++++++++-->

<table width="550" border="0" cellspacing="1" cellpadding="1" align="center" style="margin-top:30">
<tr><td colspan=3><b>3. 테스트</b></td></tr>
</table>

<table width="550" border="0" cellspacing="1" cellpadding="1" align="center" style="margin-top:5">
 <tr height=25 align=center>
  <td width=90 bgcolor="F2ECDA"><b>월/일 </b></td>
  <td width=80 bgcolor="F2ECDA"><b>종류 </b></td>
  <td width=50 bgcolor="F2ECDA"><b>맞은수</b></td>  
  <td width=50 bgcolor="F2E0DA"><b>점수 </b></td>
  <td width=50 bgcolor="F2E0DA"><b>석차 </b></td>
  <td width=50 bgcolor="F2ECDA"><b>반평균 </b></td>
  <td width=50 bgcolor="F2ECDA"><b>Top </b></td>
  <td width=80 bgcolor="F2ECDA"><b>재테스트</b></td>
 </tr>
 </table>
 
 <table width="550" border="0" cellspacing="1" cellpadding="1" align="center" style="margin-top:5">
 
<% Msql = " select * from sezma_attendance where mb_jumin='"&session_jumin&"'"
 Msql = Msql & " and lecture_month = '"&sukang_date&"' "
 Msql = Msql & " and class_cnt = "& class_cnt &" order by adate desc"
 Set rs = Server.CreateObject("ADODB.Recordset")
 rs.Open Msql, Conn, 1
 
 if rs.EOF or rs.BOF then %>
 
  <tr><td align=center><br><br><br>정보를 찾을 수가 없습니다.</td></tr>
<% else
  i = 1
  Do Until rs.EOF
   
   adate = rs("adate")
   ex_kind1 = rs("ex_kind")
   ex_right = rs("ex_right")
   ex_total = rs("ex_total")
   exam = rs("exam")
   exam2 = rs("exam2")
   
   if ex_kind1 = "0" then
    ex_kind = "확인테스트"
   else
    ex_kind = "모의고사"
   end if
   rank_hidden = rs("rank_hidden")
   
   'sc_mj_ok = rs("sc_mj_ok")
   'sc_mj_total = rs("sc_mj_total")
   'sc_jumsu = rs("sc_jumsu")
   'ban_total = rs("ban_total")
   'ban_place = rs("ban_place")
   'sc_jochi = rs("sc_jochi")
   
   '반total명수를 디비저장
   sSQL = "  select sum(convert(float,exam)) as sum_jumsu, max(convert(float,exam)) as max_jumsu from sezma_attendance"
   sSQL = sSQL & " where adate = '"& adate &"' and class_cnt = '"& class_cnt &"' "
   Set Srs = Server.CreateObject("ADODB.Recordset")
   Srs.Open sSQL, Conn, 1
   
   if Srs.EOF or Srs.BOF then
   else
    'count_mb = Srs("count_mb")
    sum_jumsu  = Srs("sum_jumsu")
    max_jumsu  = Srs("max_jumsu")
   
    '석차
    'ban_ave = Round(sum_jumsu/ban_total, 1)
   
    'response.write "count_jumsu:" & count_jumsu & "<Br>"
    'response.write "sum_jumsu:" & sum_jumsu & "<Br>"
    'response.write "max_jumsu:" & max_jumsu & "<Br><br>"
   end if
   
   qSql = "SELECT exam FROM sezma_attendance WHERE exam <> '' and adate = '"& adate &"' and class_cnt = '"& class_cnt &"' ORDER BY exam desc"
   set qSrs = Server.CreateObject("ADODB.Recordset")
   qSrs.Open qSql, Conn, 1
   
   total_exam = 0
   e_num = 0
   u = 1
   Do until qSrs.EOF
    tmp = Cint(qSrs("exam"))
    total_exam = total_exam + tmp
    e_num = e_num + 1
    if prevalue <> qSrs("exam") then
     if exam = qSrs("exam") then
      rank = u
     end if
    end if
    prevalue = qSrs("exam")
    'response.write prevalue&"|"&qSrs("exam")&"<br>"
    qSrs.MoveNext
   u = u + 1
   Loop
if total_exam <> 0 and e_num <> 0 then  
   ave = round(total_exam / e_num ,1)
end if
%>

 <tr bgcolor=ffffff align=center height=23>
  <td width=90><%=adate%></td>
  <td width=80><%=ex_kind%></td>
<%
if ex_total <> "" or ex_total = "0" then
%>  
  <td width=50><%=ex_right%> / <%=ex_total%></td>
<%
else
%>
  <td width=50> </td>
<%
end if
%>  
  <td width=50><%=exam%></td>
<%
if rank_hidden = "1" then
%>
  <td width=50><%=rank%> / <%=e_num%></td>
<%
else
%>
  <td width=50> </td>
<%
end if
%>
  <td width=50><%=ave%></td>
  <td width=50><%=max_jumsu%></td>
  <td width=80><%=exam2%></td>
 </tr>
 <tr height=1><td bgcolor=cccccc colspan=9></td></tr>
 
 <%  rs.MoveNext
  i = i + 1
  Loop
 
 end if %>
<!-- <tr><td colspan=3 style="padding:10 0 0 10"><b><font color=blue>테스트종합등급 : -->
<%
' Esql = "select sc_grade from score_test where sc_date like '"&sukang_date&"%' and class_cnt="&class_cnt&" and mb_jumin = '"& session_jumin &"'"
' Set Ers = conn.Execute(Esql)
' if not Ers.EOF then
'  sc_grade = Ers("sc_grade")
'  select case sc_grade
'   case 12 : sc_grade_str = "A<sup>+</sup>"
'   case 11 : sc_grade_str = "A<sup>0</sup>"
'   case 10 : sc_grade_str = "A<sup>-</sup>"
'   case 9 : sc_grade_str = "B<sup>+</sup>"
'   case 8 : sc_grade_str = "B<sup>0</sup>"
'   case 7 : sc_grade_str = "B<sup>-</sup>"
'   case 6 : sc_grade_str = "C<sup>+</sup>"
'   case 5 : sc_grade_str = "C<sup>0</sup>"
'   case 4 : sc_grade_str = "C<sup>-</sup>"
'   case 3 : sc_grade_str = "D<sup>+</sup>"
'   case 2 : sc_grade_str = "D<sup>0</sup>"
'   case 1 : sc_grade_str = "D<sup>-</sup>"
'   case 0 : sc_grade_str = "F<sup>+</sup>"
'  end select
%>
 <%=sc_grade_str%>
<%
' end if
%>
<!-- </font></b></td></tr>
 <tr><td colspan=9 style="padding:10 0 0 10">
 <table border=0>
 <tr><td><font color=FF9900>A<sup>+</sup>(매우 양호)  </td><td style="padding-left:10"><font color=FF9900>B<sup>+</sup>(비교적 우수) </td><td style="padding-left:10"><font color=FF9900>C<sup>+</sup> (보통) </td><td style="padding-left:20" colspan=2><font color=FF9900>D<sup>+</sup>(부진)</td></tr>
 <tr><td><font color=FF9900>A<sup>0</sup>(우수)   </td><td style="padding-left:10"><font color=FF9900>B<sup>0</sup>(비교적 우수) </td><td style="padding-left:10"><font color=FF9900>C<sup>0</sup> (보통) </td><td style="padding-left:20" colspan=2><font color=FF9900>D<sup>0</sup>(부진)</td></tr>
 <tr><td><font color=FF9900>A<sup>-</sup>(우수)   </td><td style="padding-left:10"><font color=FF9900>B<sup>-</sup>(비교적 우수) </td><td style="padding-left:10"><font color=FF9900>C<sup>-</sup> (보통) </td><td style="padding-left:20"><font color=FF9900>D<sup>-</sup>(부진)</td><td style="padding-left:20"><font color=FF9900>F(매우 부진)</td></tr>
 </table>
 </font></td></tr>
 </table>
 
 <table width="550" border=0 bgcolor=cccccc cellpadding=1 cellspacing=1>
 <tr height=23 bgcolor=ffffff align=center>
  <td>A<sup>+</sup></td><td>A<sup>0</sup></td><td>A<sup>-</sup></td>
  <td>B<sup>+</sup></td><td>B<sup>0</sup></td><td>B<sup>-</sup></td>
  <td>C<sup>+</sup></td><td>C<sup>0</sup></td><td>C<sup>-</sup></td>
  <td>D<sup>+</sup></td><td>D<sup>0</sup></td><td>D<sup>-</sup></td>
  <td>F</td><td bgcolor=f7f7f7>계</td>
 </tr>
 <tr height=23 bgcolor=ffffff align=center>
  <td><%=sc_grade_total12%></td><td><%=sc_grade_total11%></td><td><%=sc_grade_total10%></td>
  <td><%=sc_grade_total9%></td><td><%=sc_grade_total8%></td><td><%=sc_grade_total7%></td>
  <td><%=sc_grade_total6%></td><td><%=sc_grade_total5%></td><td><%=sc_grade_total4%></td>
  <td><%=sc_grade_total3%></td><td><%=sc_grade_total2%></td><td><%=sc_grade_total1%></td><td>

<%=sc_grade_total0%></td>
  <td bgcolor=f7f7f7>

<%=sc_grade_total12+sc_grade_total11+sc_grade_total10+sc_grade_total9+sc_grade_total8+sc_grade_total7+

sc_grade_total6+sc_grade_total5+sc_grade_total4+sc_grade_total3+sc_grade_total2+sc_grade_total1+sc_grade_total0%>

</td>
 </tr>
-->
 </table>

Tag // ASP

조건1. form 전송된 파일 이름은 attach 이다.
조건2. attach 를 사이트갤럭시 컴포넌트를 이용해서 받았다.(다른컴포넌트인경우 속성만 바꾸어주시오.)
조건3. 현재파일 하위에 data란 폴더에 저장되며 data폴더는 읽고 쓰기가 가능하다.

1.등록폼 파일처리

if attach <> "" then
Set FSO = CreateObject("Scripting.FileSystemObject")

strDirectory = server.MapPath("./data")
'서버내 파일이 저장되는 위치

attach_file = UploadForm("attach").FilePath
'저장될 파일의 이름을 얻는다.

FileSize = UploadForm("attach").Size
'저장될 파일의 Size

FileName = Mid(attach_file, InstrRev(attach_file, "\") + 1)
'파일명을 얻는다.
  
strName = Mid(FileName, 1, Instr(FileName, ".") -1)
'확장자를 제외한 파일명을 얻는다.

strExt = Mid(FileName, Instr(FileName, ".") + 1)
'확장자를 얻는다.

bExist = True
'우선 같은 파일이 존재한다고 가정

strFileName = strDirectory &"\"& strName & "." & strExt
'지정할 파일의 완전한 이름만듬

'파일을 실제로 저장한다.
UploadForm("attach").SaveAs (strFileName)

end if

SQL문에 FileName 변수로 저장한다.


2. 수정폼 파일처리

'만약 수정폼에서 파일을 첨부하면 기존파일을 삭제하고 새로 올린다.
if attach <> "" then

'파일이 저장되는 경로를 정의한다.
strDirectory = server.MapPath("./data")

'기존에 있는 파일을 찾아서 삭제한다.
SQL = "select * from 테이블명 where seq='"&seq&"'"
set rs1 = DbCon.Execute(SQL)
strFileDirectory = strDirectory&"\"&rs1("attach")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(strFileDirectory)) Then
    ' 파일이 있으면, 삭제
fso.DeleteFile(strFileDirectory)
End If


attach_file = UploadForm("attach").FilePath
'저장될 파일의 패스를 얻는다.

FileSize = UploadForm("attach").Size
'저장될 파일의 Size

FileName = Mid(attach_file, InstrRev(attach_file, "\") + 1)
'파일명을 얻는다.
  
strName = Mid(FileName, 1, Instr(FileName, ".") -1)
'확장자를 제외한 파일명을 얻는다.

strExt = Mid(FileName, Instr(FileName, ".") + 1)
'확장자를 얻는다.

bExist = True
'우선 같은 파일이 존재한다고 가정

strFileName = strDirectory &"\"& strName & "." & strExt
'지정할 파일의 완전한 이름만듬

'파일을 실제로 저장한다.
UploadForm("attach").SaveAs (strFileName)
end if

SQL문에 FileName 변수로 저장한다.


3. 파일 삭제처리

'쿼리문을 날려서 DB에서 파일이름을 가져온다.
SQL = "select * from 테이블명 where seq='"&request("seq")&"'"
set rs1 = DbCon.Execute(SQL)
strFileDirectory = server.MapPath("./data")&"\"&rs1("attach")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(strFileDirectory)) Then
    ' 파일이 있을때만 삭제하고 없을경우 에러문을 출력하지 않고 넘어간다.
fso.DeleteFile(strFileDirectory)
End If

delete 문을 날려서 DB에 있는 내용을 삭제한다.


출처 : http://cafe.naver.com/gosok

파일 다운로드가 잘 되지 않을 때. windwos2003

 

1.  소스
 .......
 objStream.LoadFromFile Server.MapPath("..\download")&"\"& filename download = objStream.Read
 Response.BinaryWrite download
.....

 4메가를 초과하는 파일을 다운로드 할 경우 500 에러가 발생해요..( 제 경우 ㅋㅋ )
 아마 win2003에서는 디폴트로 asp 파일 다운로드 용량을 4메가로 간주하는것 같은데.. 일단 용량을 늘여 주니까 잘 돌아갑니다..

a. 서비스에서 IIS Admin Service를 중지 시켜주시고.

사용자 삽입 이미지













b. C:\WINDOWS\system32\inetsrv\MetaBase.xml 파일을 오픈하세요
 ( 주의 : IIS Admin Service가 중지되지 않으면 MetaBase.xml을 변경할 수 없어요.)

c. MetaBase.xml 파일에서.. 아래 부분을 찾아서 뒤 숫자를 증가시켜주세요..ㅋㅋ
  AspBufferingLimit="4194304" ( 4메가라고 설정된 부분 )
 
d. 저장하시면 다시 IIS Admin Service를 시작시켜 동작 시켜보세용



출처 : http://whitecastle.tistory.com/entry/ASP-파일-다운로드가-잘-되지-않을-때-windwos2003


Tag // Windows 2003