Предисловие
⑴ В общественных местах, таких как электронные читальные залы, компьютерные залы и интернет-кафе, из-за частого использования и несвоевременного обслуживания часто возникают повреждения систем вывода, таких как дисководы для гибких дисков, когда вам нужно выполнить вывод. обработанные данные. Когда оборудование не работает, возникает большое разочарование, и в целях экономии средств во многих компьютерных залах нет всех необходимых устройств вывода на компьютерах, подключенных к сети.
⑵ Поскольку компьютеры становятся все более популярными, люди становятся все более зависимыми от них. Многие офисные задачи неотделимы от компьютеров. Другими словами, компьютеры офисных работников стали хранить много важных офисных и личных данных. В большинстве случаев эти данные уникальны, а это значит, что их владельцы не делают их копии и не хранят на разных компьютерах. Их безопасность полностью зависит от стабильности компьютеров их владельцев.
⑶ Популярность Интернета сократила расстояние между людьми и сделала общение более удобным. Однако нам нужен доступ к Интернету каждый день в разных местах, таких как дома, офисы и интернет-кафе. Как мы можем продолжать редактировать документ? Возможно, можно носить эти данные с собой через мобильное запоминающее устройство, такое как флешка или мобильный жесткий диск, но носить с собой еще одно такое устройство, особенно мобильный жесткий диск, не очень удобно, и в разные места, разные устройства. , и разные операционные системы вам не подходят. Поддержка USB-флешек или мобильных жестких дисков неодинакова, да и навыки работы с компьютером у пользователей тоже разные.
...
В связи с этим сетевое хранилище стало необходимостью.
В настоящее время существует множество способов реализации сетевого хранилища, например электронная почта, FTP, сетевое окружение, HTTP и т. д. Среди них FTP обладает наиболее мощными функциями, но его немного сложно использовать. Множество настроек достаточно, чтобы отпугнуть многих людей. Особенно, когда количество пользователей непредсказуемо, настройки для пользователей с особыми потребностями будут более громоздкими. ; электронная почта знакома всем. Да, но внутри локальной сети это не лучший способ обмена финансовыми, трудовыми и другими документами и информацией таким способом. воздействие на почтовое пространство; Network Neighbors можно использовать совместно, указав на этом компьютере веб-папки и размещенные файлы, пользователи в определенном диапазоне могут получить доступ к этим файлам. Однако область применения этого метода весьма ограничена. Тот же адрес сегмента DNS может беспрепятственно получить к нему доступ. Другие, особенно пользователи Интернета, им сложно пользоваться, и, как и электронная почта, его использование не интуитивно понятно. Часто вам приходится искать по множеству списков компьютеров, чтобы получить нужный ресурс! У упомянутых выше методов сетевого хранения также есть общий недостаток: администраторы не могут иметь четкого представления об использовании файлов, хранящихся в сетевом хранилище, и могут только решать, следует ли распределять их по местам, исходя из времени хранения файлов. .
В этой статье представлен относительно простой метод сетевого хранения, реализованный через HTTP. Этот метод реализован на платформе WINDOWS через IIS и ASP/ASP.NET. Он не только прост в использовании и может загружать файлы любого типа, но также может ограничивать пространство, используемое пользователем. Администраторы могут управлять размером от 20 байт до сотен мегабайт. Кроме того, безопасность файлов также гарантируется. Только владельцы файлов и уполномоченные лица могут восстанавливать файлы. Понимание структуры данных во втором основном пункте и исходного кода загрузки в третьем основном пункте этой статьи поможет вам самостоятельно создать сетевое хранилище. Вам не придется полагаться на бесплатное сетевое хранилище, представленное на рынке, для хранения конфиденциальных данных. файлы внутри сети. Ваша безопасность полностью в ваших руках.
Обзор и основные функции
Установите сервер в качестве узла сетевого хранилища. Операционная система использует платформу Windows и оснащена IIS5.0. Настройте веб-службу и создайте виртуальный веб-сайт под основным веб-сайтом, указывающим на сетевое хранилище, например. : d:netspacespacenetmyspace. Все исходные коды asp и asp.net размещаются на основном веб-сайте (например: c:inetpubwwwroot), а d:netspacespacenetmyspace будет размещать файлы, загруженные пользователями (изменения виртуального веб-сайта также следует вносить в исходный код скорректировать соответствующим образом).
1. Используемая базовая база данных и структура:
⑴ ftpsapce.mdb: содержит список пользователей таблицы, базовая структура таблицы:
Id: порядковый номер, генерируется автоматически;
Xh: создание учетной записи пользователя, регистрация и проверка;
Xm: имя пользователя, создание регистрации и проверки;
Kl: Пароль пользователя, генерация регистрации и проверки;
Maxspace: максимальный лимит пользовательского пространства. Значение по умолчанию используется для регистрации. Администратор может сбросить его через управление.
Nowspace: объем места, занимаемый пользователем в данный момент;
Lastaccessday: время последнего доступа пользователя, на которое администраторы могут ссылаться при управлении пространством;
Fromday: время регистрации пользователя;
Checkx: флаг проверки пользователя.
⑵ Filelist.mdb: содержит файлы таблицы, базовая структура таблицы:
Id: порядковый номер, генерируемый автоматически;
Имя файла: имя файла, сгенерированное системой загрузки;
Fsize: значение размера файла;
Xh: учетная запись пользователя;
Upday: время загрузки;
Filescript: описание файла, которое представляет собой путь и исходное имя файла, когда пользователь его загружает, для справки при загрузке пользователем.
2. Основные функции
⑴ Пользователь входит на главный веб-сайт, попадает на главную страницу веб-сайта; и предоставляет основную информацию пользователя для регистрации пользователя.
⑵ Администратор проверит регистрационную информацию пользователя и установит максимальное используемое пространство пользователя.
⑶ Пользователи, прошедшие проверку, загружают файлы в сетевое хранилище. Система определяет легальность пользователя и легальность файла, а также регистрирует файлы и пользовательскую информацию, загруженные пользователем, в базу данных.
⑷ Одобренные пользователи могут перезагрузить или удалить файлы, которые они загрузили с помощью функции загрузки.
⑸ Администратор управляет сетевым пространством на основе базы данных пользователей и базы данных файлов.
⑹ Расширенная система позволяет авторизованным пользователям загружать файлы, загруженные авторизованными пользователями.
Базовый исходный код модуля загрузки
ограничен пространством. В этой статье приводится только базовый исходный код модуля загрузки. Если вам нужен дополнительный исходный код, вы можете запросить его у автора по электронной почте. Строки, начинающиеся с ***. в исходном коде есть комментарии, добавленные автором для удобства читателей. (Далее взято из upfile.aspx)
<%@ Page Language="VB" Debug="true" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.oledb" %>
<html>
<script Language="vbscript" runat="server">
дополнительный файл загрузки (отправитель как объект, e как eventargs)
если fileup.postedfile.contentlength<20, то
error.text="Вам нужно загрузить такой маленький файл, просто запомните его."
fileinfo.visible = ложь
выход из субмарины
еще
error.text="Проверка ОК"
fileinfo.visible=истина
end if
*** Приведенное выше проверяет размер загруженного файла.
respace.text="0"
nowspace.text="0"
*** respace относится к оставшемуся пространству, nowspace относится к использованному пространству
dim xh1 как строка =user1.value
dim kl1 as string =pass1.value
*** xh1 относится к номеру учетной записи, kl1 относится к паролю
dim objconnstr as string="provider=microsoft.jet.oledb.4.0;data source="
& server.mappath("ftpspace.mdb")
*** Две приведенные выше строки должны быть одним и тем же оператором в исходном коде
dim objconn, поскольку oledbconnection = new oledbconnection(objconnstr)
dim sql1 as string="выберите * из списка пользователей, где xh='"+xh1+"' и kl='"+kl1+"'"
dim objrscc as oledbcommand = новая oledbcommand(sql1,objconn)
objconn.open()
dim objrs как oledbdatareader = objrscc.executereader()
dimix как целое число = 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("nowspace")
конец, если
конец, если
конец, если
еще
ix=-1
конец, если
end while
*** Вышеуказанное определяет, являются ли учетная запись и пароль законными,
если ix<=0, то
error.text="Пароль учетной записи неверен! Или пользователь не прошел аутентификацию, подождите, пока администратор выполнит аутентификацию!"
иначе,
если fileup.postedfile.contentlength>maxs-nows, тогда
если fileup.postedfile.contentlength>=maxs, то
error.text="Длина файла превышает выделенное пространство, и его невозможно загрузить!"
еще
error.text="Недостаточно свободного места, удалите старые файлы!"
end if
*** Вышеупомянутое определяет доступность пользовательского пространства
еще
dim obj4str as string="provider=microsoft.jet.oledb.4.0;
data source=" & server.mappath("filelist.mdb")
*** Две приведенные выше строки представляют собой тот же оператор в исходном коде dim obj4, что и oledbconnection = new oledbconnection(obj4str)
dim sql10 as string="выбрать * из файлов"
dim objrc1 as oledbcommand = новая oledbcommand(sql10,obj4)
obj4.open()
dim objrsx как oledbdatareader = objrc1.executereader()
тусклый fn11 до тех пор, пока = 0
в то время как objrsx.read()
fn11=objrsx("имя файла")
закончиться, пока
dim fn1 как строка
fn1=cstr(fn11+1)
*** Вышеупомянутое создает уникальное имя основного файла, позволяющее пользователям загружать файлы dim objc1str as string="provider=microsoft.jet.oledb.4.0;
data source=" & server.mappath("filelist.mdb")
*** Две приведенные выше строки представляют собой тот же оператор в исходном коде dim objc1, что и oledbconnection = new oledbconnection(objc1str)
dim sql3 as string="вставить в файлы(имя файла,fsize, xh,filescript,upday)
значения("+cstr(fn1)+","+cstr(fileup.postedfile.contentlength)+",'"
+xh1+"','"+fileup.postedfile.filename+"','"+cstr(now())+"')"
*** Три приведенные выше строки представляют собой один и тот же оператор objc1.open() в исходном коде.
затемнить objrs1 как oledbcommand=новая oledbcommand(sql3,objc1)
dim fn2 как строка
fn2="d:/netspace/spacenet/myspace/"&cstr(fn1)&".zip"
*** Укажите абсолютный путь и полное имя файла, загруженного пользователем fsize.text=cstr(fileup.postedfile. длина контента)
ftype.text=fileup.postedfile.contenttype
fname.text=fileup.postedfile.имя файла
имя пользователя.текст=пользователь1.значение
fileup.postedfile.saveas(fn2)
objrs1.ExecuteNonQuery()
objrs.close
dim sql5 as string="обновить список пользователей set nowspace="+cstr(nows+fileup.postedfile.contentlength)+
",lastaccessday='"+cstr(now())+"' где xh='"+xh1+"'"
*** Две приведенные выше строки представляют собой тот же оператор в исходном коде
dim objrnc, что и oledbcommand= new oledbcommand(sql5 ,объект)
objrnc.executenonquery()
respace.text=cstr(maxs-nows-fileup.postedfile.contentlength)&"bytes."
nowspace.text=cstr(nows+fileup.postedfile.contentlength)&"bytes."
*** Указанное выше значение используется для загрузки, а общее использованное пользователем пространство и общее оставшееся пространство рассчитываются в конце, если
конец, если
конец субтитра
</скрипт>
<тело>
<form enctype="multipart/form-data" runat="server">
<таблица>
<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="server"/></td></tr>
</таблица>
</форма><hr>
<div id="fileinfo"visible="false" runat="server">
Исходное имя файла: <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>
*** Вышеупомянутое сообщает пользователю соответствующую информацию до и после загрузки файла в браузер.
</тело>
</html>
Заключение
Метод, описанный в этой статье, основан на бескомпонентной технологии и учитывает больше аспектов безопасности файлов и конфиденциальности. Он наиболее подходит для использования на платформах Windows Server 2003 и IIS6.0. простой и безопасный, его можно немного расширить, например, добавив номер пользователя и номер группы в список пользователей, а также добавив номер группы в файлы, вы можете установить права доступа к файлам, что может облегчить отправку, проверку и обмен файлами по сети. . В сочетании с дисковым массивом качественно повысится безопасность данных.