머리말
⑴ 전자열람실, 컴퓨터실, PC방 등 공공장소에서는 잦은 사용과 유지보수 지연으로 인해 플로피드라이브 등 출력시스템이 손상되는 경우가 많아 출력이 필요할 때 출력물을 발견하는 경우가 많습니다. 처리된 데이터가 제대로 작동하지 않아 답답함을 많이 느끼며, 비용 절감을 위해 네트워크에 연결된 컴퓨터에 필요한 출력 장치가 모두 갖춰져 있지 않은 컴퓨터실이 많습니다.
⑵ 컴퓨터가 대중화됨에 따라 사람들은 점점 더 컴퓨터에 의존하게 됩니다. 많은 사무 업무가 컴퓨터와 분리될 수 없습니다. 즉, 직장인의 컴퓨터에는 중요한 사무실 및 개인 데이터가 많이 저장되기 시작했습니다. 대부분의 경우 이러한 데이터는 고유하므로 소유자가 해당 데이터의 복사본을 만들어 다른 컴퓨터에 저장하지 않으며 해당 데이터의 보안은 전적으로 소유자 컴퓨터의 안정성에 달려 있습니다.
⑶ 인터넷의 대중화로 인해 사람 간의 거리가 가까워지고 의사소통이 더욱 편리해졌습니다. 하지만 집, 사무실, PC방 등 다양한 장소에서 매일 인터넷에 접속해야 하는 우리는 어떻게 문서를 계속 편집할 수 있습니까? 아마도 USB 플래시 드라이브 또는 모바일 하드 디스크와 같은 모바일 저장 장치를 통해 이러한 데이터를 가지고 다닐 수 있지만 이러한 장치, 특히 모바일 하드 디스크와 다른 장소, 다른 장치를 하나 더 가지고 다니는 것은 그리 편리하지 않습니다. , 다른 운영 체제는 귀하에게 적합하지 않습니다. USB 플래시 드라이브 또는 모바일 하드 드라이브의 지원은 동일하지 않으며 사용자의 컴퓨터 기술도 다릅니다.
...
이러한 사실로 인해 네트워크 스토리지가 필수 요소로 등장했습니다.
현재 이메일, FTP, 네트워크 장소, HTTP 등과 같은 네트워크 스토리지를 구현하는 방법은 다양합니다. 그 중에서 FTP는 가장 강력한 기능을 가지고 있지만, 설정이 너무 많아 많은 사람들을 단념시키기에 충분합니다. 특히 사용자 수를 예측할 수 없는 경우 특별한 요구 사항이 있는 사용자를 위한 설정은 더욱 번거로울 것입니다. ; 이메일은 모든 사람에게 친숙합니다. 그러나 LAN 내에서 이러한 방식으로 금융, 노동 및 기타 문서와 정보를 교환하는 것은 좋은 방법이 아닙니다. 메일 공간에 미치는 영향, 네트워크 이웃은 이 시스템에서 이를 지정하여 공유할 수 있으며, 특정 범위 내의 사용자는 이러한 파일에 액세스할 수 있습니다. 동일한 DNS 세그먼트 주소를 사용하면 원활하게 액세스할 수 있습니다. 다른 사용자, 특히 인터넷 사용자는 사용하기 어렵고 이메일과 마찬가지로 원하는 리소스를 얻기 위해 여러 컴퓨터 목록을 검색해야 하는 경우가 많습니다. 위에서 언급한 네트워크 저장 방식에도 공통적인 단점이 있습니다. 즉, 관리자는 네트워크 저장소에 저장된 파일의 용도를 명확히 이해할 수 없으며, 파일의 저장 시간에 따라 공간을 확보할지 여부만 결정할 수 있다는 것입니다. .
이 기사에서는 HTTP를 통해 구현되는 비교적 간단한 네트워크 저장 방법을 소개합니다. 이 방법은 IIS 및 ASP/ASP.NET을 통해 WINDOWS 플랫폼에서 구현됩니다. 사용이 간편하고 모든 유형의 파일을 업로드할 수 있을 뿐만 아니라 사용자가 사용하는 공간을 제한할 수 있습니다. 20바이트에서 수백 메가바이트까지 관리자가 관리할 수 있으며 파일의 보안도 보장됩니다. 파일 소유자와 권한 있는 사람만 파일을 복원할 수 있습니다. 이 글의 두 번째 주요 사항의 데이터 구조와 세 번째 주요 사항의 업로드 소스 코드를 이해하면 민감한 데이터를 저장하기 위해 시중에서 제공하는 무료 네트워크 스토리지에 의존할 필요가 없이 네트워크 스토리지를 직접 만드는 데 도움이 됩니다. 귀하의 안전은 귀하의 손에 달려 있습니다.
개요 및 기본 기능
서버를 네트워크 스토리지 호스트로 설치합니다. 운영 체제는 Windows 플랫폼을 사용하며 IIS5.0을 갖추고 있습니다. WEB 서비스를 설정하고 네트워크 스토리지를 가리키는 기본 웹 사이트 아래에 가상 웹 사이트를 만듭니다. : d:netspacespacenetmyspace. 모든 asp 및 asp.net 소스 코드는 기본 웹사이트(예: c:inetpubwwwroot) 아래에 배치되고 d:netspacespacenetmyspace는 사용자가 업로드한 파일을 배치합니다(가상 웹사이트 변경도 다음 위치에서 이루어져야 함). 소스 코드를 적절하게 조정하세요).
1. 사용된 기본 데이터베이스 및 구조:
⑴ ftpsapce.mdb: 테이블 userlist가 있고 테이블의 기본 구조:
ID: 시퀀스 번호, 자동 생성;
Xh: 사용자 계정, 등록 및 확인 생성;
Xm: 사용자 이름, 등록 및 확인 생성;
Kl: 사용자 비밀번호, 등록 및 확인 생성;
Maxspace: 사용자 공간의 최대 한도입니다. 기본값은 관리자가 관리를 통해 재설정할 수 있습니다.
Nowspace: 현재 사용자가 점유하고 있는 공간의 양입니다.
Lastaccessday: 사용자가 마지막으로 접속한 시간으로, 관리자가 공간 관리 시 참고할 수 있습니다.
Fromday: 사용자 등록 시간
Checkx: 사용자 확인 플래그.
⑵ Filelist.mdb: 테이블 파일이 있으며 테이블의 기본 구조는 다음과 같습니다.
ID: 자동으로 생성된 시퀀스 번호;
파일 이름: 업로드 시스템에서 생성된 파일 이름입니다.
Fsize: 파일 크기 값;
Xh: 사용자 계정;
업데이트: 업로드 시간;
파일스크립트: 사용자가 업로드할 때 파일의 경로와 원본 파일명을 나타내는 파일 설명으로, 사용자가 로드할 때 참고할 수 있습니다.
2. 기본 기능
⑴ 사용자가 메인 웹 사이트에 로그인하면 해당 웹 사이트의 메인 페이지로 들어갑니다. , 사용자 등록을 위한 사용자의 기본 정보를 제공합니다.
⑵ 관리자는 사용자의 등록 정보를 검토한 후 사용자의 최대 사용 공간을 설정합니다.
⑶ 심사를 통과한 사용자는 파일을 네트워크 스토리지에 업로드합니다. 시스템은 사용자의 적법성과 파일의 적법성을 판단하고, 사용자가 업로드한 파일과 사용자 정보를 데이터베이스에 등록합니다.
⑷ 승인된 사용자는 다운로드 기능을 통해 자신이 업로드한 파일을 다시 로드하거나 삭제할 수 있습니다.
⑸ 관리자는 사용자 데이터베이스와 파일 데이터베이스를 기반으로 네트워크 공간을 관리한다.
⑹ 확장된 시스템을 통해 인증된 사용자가 업로드한 파일을 인증된 사용자가 다운로드할 수 있습니다.
업로드 모듈의 기본 소스 코드는
공간의 제약이 있습니다. 이 글에서는 업로드 모듈의 기본 소스 코드만 제공합니다. 더 많은 소스 코드가 필요한 경우 ***로 시작하는 줄을 통해 작성자에게 요청할 수 있습니다. 소스 코드에는 독자의 편의를 위해 작성자가 추가한 설명이 있습니다. (다음 내용은 upfile.aspx에서 발췌)
<%@ Page Language="VB" Debug="true" %>
<%@ import 네임스페이스="System.Data" %>
<%@ import 네임스페이스="System.Data.oledb" %>
<html>
<스크립트 언어="vbscript" runat="서버">
하위 업로드 파일(객체로 보낸 사람, 이벤트 인수로 e)
fileup.postedfile.contentlength<20이면
오류.text="이렇게 작은 파일을 업로드해야 하니, 그냥 외워두세요."
fileinfo.visible=false
서브 종료
또 다른
오류.text="확인이 완료되었습니다."
fileinfo.visible=true
end if
*** 위는 업로드된 파일 크기를 확인합니다.
respace.text="0"
nowspace.text="0"
*** respace는 남은 공간을 의미하고, nowspace는 사용된 공간인
dim xh1을 string =user1.value로
나타냅니다.
희미한 kl1 as string =pass1.value
*** xh1은 계정 번호를 나타내고, kl1은 비밀번호
희미한 objconnstr을 string="provider=microsoft.jet.oledb.4.0;data source="
로 나타냅니다.
& server.mappath("ftpspace.mdb")
oledbconnection = new oledbconnection(objconnstr)과 같이
소스 코드 희미한 objconn의 동일한 명령문이어야 합니다.
Dim sql1 as string="xh='"+xh1+"' 및 kl='"+kl1+"'"인 사용자 목록에서 * 선택
oledbcommand= new oledbcommand(sql1,objconn)로 희미한 objrscc
objconn.open()
oledbdatareader = objrscc.executereader()로 희미한 objrs
정수=0인 이혼합
최대 어둡게 하기
지금은 어두워
ix=0인 동안
objrs.read()이면
objrs.item("xh")=xh1이면
objrs.item("kl")=kl1이면
objrs.item("checkx")=1이면
ix=ix+1
maxs=objrs.item("maxspace")
nows=objrs.item("지금공간")
종료하면
종료하면
종료하면
또 다른
ix=-1
종료하면
end while
ix<=0인 경우
계정과 비밀번호가 유효한지 여부를 결정합니다.
오류.text="계정 비밀번호가 잘못되었습니다! 또는 사용자가 인증되지 않았습니다. 관리자가 인증할 때까지 기다려주세요!"
그렇지 않으면
fileup.postedfile.contentlength>maxs-nows인 경우
fileup.postedfile.contentlength>=maxs인 경우
오류.text="파일 길이가 할당된 공간보다 길어서 업로드할 수 없습니다!"
또 다른
오류.text="여유 공간이 부족합니다. 오래된 파일을 삭제하세요!"
end if
*** 위의 내용에 따라 사용자 공간의 가용성이 결정됩니다.
또 다른
희미한 obj4str as string="provider=microsoft.jet.oledb.4.0;
data source=" & server.mappath("filelist.mdb")
*** 위의 두 줄은 oledbconnection = new oledbconnection(obj4str)과 같이 소스 코드 Dim obj4의 동일한 명령문입니다.
문자열 = "파일에서 * 선택"으로 희미한 sql10
oledbcommand= new oledbcommand(sql10,obj4)로 희미한 objrc1
obj4.open()
oledbdatareader = objrc1.executereader()로 희미한 objrsx
fn11 길이 =0으로 어둡게 표시
objrsx.read() 동안
fn11=objrsx("파일이름")
동안 종료
fn1을 문자열로 흐리게 표시
fn1=cstr(fn11+1)
*** 위의 내용은 사용자가 파일을 업로드할 수 있는 고유한 기본 파일 이름을 만듭니다. Dim objc1str as string="provider=microsoft.jet.oledb.4.0;
data source=" & server.mappath("filelist.mdb")
*** 위의 두 줄은 oledbconnection = new oledbconnection(objc1str)과 같이 소스 코드 Dim objc1의 동일한 명령문입니다.
희미한 sql3 as string="파일에 삽입(파일 이름, fsize, xh, filescript, upday)
값("+cstr(fn1)+","+cstr(fileup.postedfile.contentlength)+",'"
+xh1+"','"+fileup.postedfile.filename+"','"+cstr(now())+"')"
*** 위 세 줄은 소스 코드의 objc1.open()과 동일한 문입니다.
oledbcommand=new oledbcommand(sql3,objc1)로 희미한 objrs1
fn2를 문자열로 흐리게 표시
fn2="d:/netspace/spacenet/myspace/"&cstr(fn1)&".zip"
*** 사용자가 업로드한 파일의 절대 경로와 전체 파일 이름을 제공합니다. fsize.text=cstr(fileup.postedfile. 콘텐츠 길이)
ftype.text=fileup.postedfile.contenttype
fname.text=fileup.postedfile.filename
사용자 이름.text=user1.value
fileup.postedfile.saveas(fn2)
objrs1.ExecuteNonQuery()
objrs.close
Dim sql5 as string="update userlist set nowspace="+cstr(nows+fileup.postedfile.contentlength)+
",lastaccessday='"+cstr(now())+"' where xh='"+xh1+"'"
oledbcommand= new oledbcommand(sql5와 같이 소스 코드 희미한 objrnc
의 동일한 명령문입니다.
,objconn)
objrnc.executenonquery()
respace.text=cstr(maxs-nows-fileup.postedfile.contentlength)&"바이트."
nowspace.text=cstr(nows+fileup.postedfile.contentlength)&"bytes."
*** 위 내용은 업로드에 사용되며, 사용자가 사용한 총 공간과 남은 총 공간은 다음과 같이 계산됩니다.
종료하면
서브 끝
</script>
<본문>
<form enctype="multipart/form-data" runat="서버">
<테이블>
<tr><td>계정:</td><td><input id="user1" runat="server"></td></tr>
<tr><td>비밀번호:</td><td><input type="password" id="pass1" runat="server"></td></tr>
<tr><td>파일:</td><td><input type="file" id="fileup" runat="server"></td></tr>
<tr><td></td><td><asp:button id="upload" onclick="uploadfile" text="업로드"
runat="서버"/></td></tr>
</table>
</form><시간>
<div id="fileinfo" visible="false" runat="서버">
원본 파일 이름:<asp:label id="fname" runat="server"/><br>
바이트 크기:<asp:label id="fsize" runat="server"/><br>
파일 유형:<asp:label id="ftype" runat="server"/><br>
사용자 계정:<asp:label id="username" runat="server"/><br>
남은 공간:<asp:label id="respace" runat="server"/><br>
사용된 공간:<asp:label id="nowspace" runat="server"/><br>
업로드 상태:<asp:label id="errors" runat="server"/>
</div>
*** 위 내용은 파일이 브라우저에 업로드되기 전과 후의 관련 정보를 사용자에게 알려줍니다.
</body>
</html>
결론
이 기사에서 설명하는 방법은 구성 요소가 없는 기술을 기반으로 하며 Windows Server 2003 및 IIS6.0 플랫폼에서 사용하기에 가장 적합합니다. 간단하고 안전하며 사용자 목록에 사용자 번호와 그룹 번호를 추가하고 파일에 그룹 번호를 추가하는 등 파일 권한을 설정하여 파일의 네트워크 제출, 확인 및 공유를 용이하게 할 수 있습니다. . 디스크 어레이와 결합하면 데이터 보안이 질적으로 향상됩니다.