|
|
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
С ASP-старинцы необходимо при uploade файлов на сервер, сохранять их не на диск а непосредственно в базу данных и потом получать к ним доступ. Сервак 7.0. Как это сделать, никто не подскажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 07:56:42 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Я постил сюда пример как это делато в ADO. Только это все очень медленно работает. Годится только как репозитарий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 08:04:28 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
А не могли бы вы поподробней о примере и что у вас медленно работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 14:52:00 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Я же говорю - в этом форуме ищите. Медленно - потому что это BLOB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 15:53:03 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Создай таблицу со столбцом тип данных Image. Далее загоняй в этот столбец свои файлы. Как работать с типом Image найдешь в этом форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 18:38:30 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Лови, брат! Вот табла в базе pubs: ------------------------------------------------- CREATE TABLE [imgs] ( [n] [int] IDENTITY (1, 1) NOT NULL , [img] [image] NOT NULL , CONSTRAINT [PK_imgs] PRIMARY KEY CLUSTERED ( [n] ) ON [PRIMARY] ) GO -------------------------------------------------- Вот файл zmain.htm: ------------------------------------------------------ <html> <body> <form name="fm" method="post" enctype="multipart/form-data" action="zblob.asp"> <input name="fi" type="file"> <input name="sbt" type="submit"> </form> </body> </html> --------------------------------------------------------- Вот файл zblob.asp: ------------------------------------------------------ <%@ language="vbscript" %> <% rd=request.binaryread(request.totalbytes) rd=midb(rd, instrb(rd, chrb(13) & chrb(10) & chrb(13) & chrb(10))+4) set cn=server.createobject("adodb.connection") set rs=server.createobject("adodb.recordset") cn.connectionstring="provider=sqloledb;server=ТвойСервер;initial catalog=pubs;user id=sa;password=" cn.open rs.open "imgs", cn, 1, 3 rs.addnew rs("img").appendchunk rd rs.update rs.close cn.close %> -------------------------------------------------------- Файлы заносит в поле img исправно, несмотря на дурацкую ошибку: конфликт операции с курсором. Но до конца не тестировал. Будут вопросы - пиши. Примочки, типа ConnectionTimeOut, сделай сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2002, 16:07:28 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Вот небольшое усиление для zblob.asp: создай в табле "imgs" доп. поле "info" (varchar(8000)), для занесения инфы о загруженном файле. ---------------------------------------------------- файл zblob.asp с поправками: ----------------------------------------------- <%@ language="vbscript" %> <% rd=request.binaryread(request.totalbytes) hd=leftb(rd, instrb(rd, chrb(13) & chrb(10) & chrb(13) & chrb(10))-1) rd=midb(rd, instrb(rd, chrb(13) & chrb(10) & chrb(13) & chrb(10))+4) for i=1 to lenb(hd) info=info & chr(ascb(midb(hd, i, 1))) next set cn=server.createobject("adodb.connection") set rs=server.createobject("adodb.recordset") cn.connectionstring="provider=sqloledb;server=z;initial catalog=pubs;user id=sa;password=" cn.open rs.open "imgs", cn, 1, 3 rs.addnew rs("info")=info rs("img").appendchunk rd rs.update rs.close cn.close %> --------------------------------------------------------- в поле "info" будет что-то вроде: ------------------------------------------------------ n info ---- ----------------------------------------- 5 -----------------------------7d2118364d4 Content-Disposition: form-data; name="fi"; filename="D:\Inetpub\wwwroot\bullet.gif" Content-Type: image/gif 6 -----------------------------7d26e64d4 Content-Disposition: form-data; name="fi"; filename="D:\Inetpub\wwwroot\CHESS.EXE" Content-Type: application/octet-stream -------------------------------------------------------- Парсинг инфы труда не составит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2002, 12:37:32 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2002, 14:03:04 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Ещё не всё. Ошибка (конфликт операции с курсором) устраняется заменой cn.CursorLocation=adUseServer (по умолчанию) на cn.CursorLocation=adUseClient. Странно. Для провайдера Microsoft.Jet.Oledb.4.0 это неважно. Вот окончательный вариант текста файла zblob.asp: --------------------------------------------------------- <%@ language="vbscript" %> <html><body><!-- #include file="adovbs.inc" --> <% server.scripttimeout=900 rd=request.binaryread(request.totalbytes) hd=leftb(rd, instrb(rd, chrb(13) & chrb(10) & chrb(13) & chrb(10))-1) rd=midb(rd, instrb(rd, chrb(13) & chrb(10) & chrb(13) & chrb(10))+4) for i=1 to lenb(hd) info=info & chr(ascb(midb(hd, i, 1))) next set cn=server.createobject("adodb.connection") set rs=server.createobject("adodb.recordset") cn.cursorlocation=aduseclient cn.mode=admodewrite cn.connectionstring="provider=sqloledb;data source=z;initial catalog=pubs;user id=sa;password=;" 'cn.connectionstring="provider=microsoft.jet.oledb.4.0;data source=d:\мои документы\db1.mdb;user id=admin;password=;" cn.open rs.open "imgs", cn, adopenforwardonly, adlockoptimistic, adcmdtable rs.addnew rs("info")=info rs("img").appendchunk rd rs.update rs.close cn.close %> <h2>Спасибо за Ваш вклад в дело <font color="red">мировой революции</font>!!!</h2> </body> </html> ---------------------------------------------------------- P.S. Прошу желающих отправить какой-нибудь файлик в мой домашний SQL Server 7.0 до 14.55 по Москве (для окончательной проверки ентого дела). http:\\194.158.205.235 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2002, 14:45:25 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Ну мощно! Прибыл гад: filename="C:\PISGANEW\BLOBLIB\mdlBlobOps.bas" И кто Вы, маска??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2002, 14:58:42 |
|
||
|
Как хранить файлы непосредственно в базе данных?
|
|||
|---|---|---|---|
|
#18+
Дорогой брат Даун! (все дауны - мои братья. Я и сам даун). Вот склепал тебе не "мигающий" чат на основе объекта XMLHTTP, причем, заставил ентот объект понимать кириллицу (грубо, но работает). --------------------------------------------- Вот main.htm: ----------------------------------------------------- <html><body><input type="text" id="nm" value="your name"><br> <input type="text" id="txt" style="width:500" value="write here"> <input name="snd" type="button" onclick="send()" value="send!"><hr> <div id="dv"></div> <script language="vbscript"> dim hh, kk, zz, dd, i, gg, rt, ss kk="" set hh=createobject("microsoft.xmlhttp") sub send() zz=nm.value & "." & txt.value dd="" for i=1 to len(zz) ss="" if asc(mid(zz, i, 1))<10 then ss="00" & asc(mid(zz, i, 1)) elseif asc(mid(zz, i, 1))<100 then ss="0" & asc(mid(zz, i, 1)) else ss=asc(mid(zz, i, 1)) end if dd=dd & ss & " " next dd=cstr(dd) hh.open "post","http://ТвояМашина/zserver.asp", 0 hh.setrequestheader "qwe", dd hh.send txt.focus() txt.value="" end sub call ht() sub ht() hh.open "post","http://ТвояМашина/zserver.asp", 0 hh.send gg="" rt=hh.responsetext for i=1 to len(rt)/4 gg=gg & chr(cbyte(mid(rt, 4*i-3, 3))) next if gg<>kk then dv.innertext=dv.innertext & chr(13) & gg kk=gg end if call window.settimeout("ht",500,"vbscript") end sub </script> </body></html> --------------------------------------------------------- Вот zserver.asp: -------------------------------------------------------- <%@ language="vbscript" %> <% if request.servervariables("http_qwe")<>"" then application.lock application("text")=request.servervariables("http_qwe") application.unlock end if response.write application("text") %> ----------------------------------------------------- P.S. Чел, приславший мне файл mdlBlobOps.bas, видимо, ещё один крупный спец по блобам, работающий в стиле Copy&Paste. P.P.S. Не ругайте за оффтопик. Уж очень я увлёкся. Последний раз это. Теперь, когда у меня есть собственный чат, буду беседовать сам с собой. SIGNING OFF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2002, 21:08:55 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1821958]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 361ms |

| 0 / 0 |
