Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


fil till binär lagring i databas?

Postades av 2002-02-13 20:47:05 - Patrik Wårdmark, i forum asp - allmänt, Tråden har 7 Kommentarer och lästs av 522 personer

Hej
Jag vill kunna läsa in en fil som redan ligger i en mapp på servern
och sedan stoppa in den i en databas.
Trodde det skulle kunna funka enligt koden nedan men det gör det icke.

Nån som kan hjälpa mig?
Är jag helt ute och cyklar kanske? :)

<code>
<%
' kod
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function

filen = "esb11.jpg"
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")

if fso.FileExists(Server.MapPath(filen)) = true then
' om finns, läs in
set fh = fso.OpenTextFile(Server.MapPath(filen))
filinnehall = fh.readall
end if

Set fso = Nothing

'förbered variabler till databas
filename= "esb11.jpg"
filesize= lenB(filinnehall)
filedata= getByteString(filinnehall)
filetype= "image/pjpeg"

'öppna databas och lagra
set ConnBin= server.createobject("ADODB.Connection")
ConnBin.Open "DSN=FileDB"

Set rs2 = Server.CreateObject("ADODB.Recordset")
SQLstring2= "select * from binaryfiles where 1=2"
rs2.Open SQLstring2, ConnBin, 1, 2

rs2.AddNew
rs2("filename") = filename
rs2("filesize") = filesize
rs2("filedata").AppendChunk filedata
rs2("filetype") = filetype
rs2.Update
rs2.Close
Set rs2= Nothing

ConnBin.Close
set ConnBin= nothing
%>
</code>


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-13 21:55:28 - Andreas Hillqvist

Kanske detta kan vara till din hjälp?
<%
Dim rs2
Dim Stream
Dim ConnBin

'Öppnar filen
Set Stream = Server.CreateObject("ADODB.Stream")
Stream.Type = 1
Stream.Open
Stream.LoadFromFile Server.MapPath(filen)

'Öppna databas
set ConnBin= server.createobject("ADODB.Connection")
ConnBin.Open "DSN=FileDB"

'Öppna recordset
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.Open "SELECT * FROM binaryfiles WHERE 1=2", ConnBin, 1, 2

'Sparar fil
rs2.AddNew
rs2("filename") = "esb11.jpg"
rs2("filesize") = Stream.Size
rs2("filedata").AppendChunk Stream.Read
rs2("filetype") = "image/pjpeg"
rs2.Update

'Stänger allt
Stream.Close
Set Stream = Nothing

rs2.Close
Set rs2= Nothing

ConnBin.Close
Set ConnBin= Nothing
%>



Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-13 22:22:42 - Patrik Wårdmark

Tack, ska pröva.
En annan snabb fråga... i mitt exempel vet jag innan att filen i fråga är en jpeg. Kan jag vid öppnade av filen få fram contenttype om den är okänd?


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-13 23:32:59 - Andreas Hillqvist

Kolla filändelsen är nog enklast.


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-14 00:52:50 - Patrik Wårdmark

Var finns bra info om allt hur ADODB.Stream fungerar?
Försökte titta på MSDN men lyckades inte hitta något bra där... Vad innebär t.ex. Type 1?


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-14 01:29:42 - Patrik Wårdmark

Ytterligare en undran... Jag har nu lyckats få in filerna som jag vill i databasen, men när de ska visas så ska de först passera en komponent som heter Graphicsprocessor för att bl.a. justera storleken.
Jag försöker ladda in bilden till komponenten genom koden nedan men får "inkompatibla typer" som svar...
Nu kanske inte du känner till just denna komponent, men kan du ändå se vad jag gör galet kanske? Har jag helt missuppfattat hur Stream funkar kanske... :-)

<code>
'......

Set rs = Server.CreateObject("ADODB.Recordset")
SQLstring= "select filedata from binaryfiles where id=" & int(fileid)
rs.Open SQLstring, ConnBin

If Not rs.EOF Then
fileData2= rs("filedata")
end if

Set Stream = Server.CreateObject("ADODB.Stream")
Stream.Type = 1
Stream.Open
Stream.write fileData2

' ----------------------------------------------------------------------
Dim objRaster, objEncoder
Set objRaster = Server.CreateObject("GraphicsProcessor2002.RasterObject")
Set objEncoder = Server.CreateObject("GraphicsProcessor2002.JPEGEncoderInfo")

objRaster.LoadStream Stream.read

'... koden klippt
</code>


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-14 08:28:39 - Andreas Hillqvist

Jag chansar på att det är objRaster.LoadStream som strular. Jag vet inte vad den förväntar sig för datatyp. Men det låter som den vill ha et hantag till en stream eller ett objekt som stöder Stream gränssnitet.

Du kan ju försöka med:
objRaster.LoadStream Stream

Annars behöver jag nog dokumentationen för komponenten.

Sedan är det ju kanske bättre att konvertera filen när du läser in den. Ev lägga till en extra kolumn för den behandlade bilden. Slipper den ju bearbeta bilden varje gång den ska visas.


Svara

Sv: fil till binär lagring i databas?

Postades av 2002-02-14 19:00:21 - Patrik Wårdmark

I dokumentationen om står det så här:

--------
LoadStream Method
LoadStream loads image from specified stream. All the raster image types which are supported by GDI+ are available. At the present day the following image formats are supported: JPEG, BMP, GIF, TIFF and PNG.

Syntax
object. LoadStream( InputStream)

Parameters
object - an instance of the RasterObject or RasterItem object.

InputStream - specifies the stream object which contains the image.
--------

Hjälper detta? Kan du ge nåt tips då?

Sen detta med att behandla bilden när den visas.
Jag hade tänkt att man lagrar bilder med t.ex. 600 pixels i bredd idatabasen och vid visning av bilden kan man i förväg ange om den ska visas som 300 bred, 400 eller vad man nu vill.
Är detta en dum lösning i praktiken då, eftersom bilden måste bearbetas vid varje visning?
Själv hade jag tänkt att det var en smart lösning då man bara behöver lagra en bild oavsett om man sedan behöver visa den i olika storlekar på olika delar av en hemsida.


Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 843
27 961
271 763
914
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies