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


Streama?

Postades av 2003-02-02 07:48:25 - Lisbeth Dahlin, i forum asp - allmänt, Tråden har 24 Kommentarer och lästs av 837 personer

Någon som enkelt kan förklara vad streama betyder och när det ska användas?

Jag ställde en fråga här före jul - [Öppna .pdf-fil utan klick] - betr att visa pdf-filer utan att klicka på en länk. Med den lösningen som jag fick så får jag felmeddelandet

ADODB.Stream (0x800A0BBA)
File could not be opened.
/ludde/blank.asp, line 17

där rad 17 är just kommandot för att öppna.

Dock gäller det inte på alla datorer. Jag trodde först att det berodde på om man har Distiller installerad eller inte, men icke...



Svara

Sv: Streama?

Postades av 2003-02-02 10:37:29 - Magnus Karlsson

Är inte distillern den del som skapar PDF...

Är verkligen Acrobat installerad på alla datorer?


Svara

Sv: Streama?

Postades av 2003-02-02 11:21:48 - Lisbeth Dahlin

Tanken är att detta ska användas på ett intranät, där en del datorer har Distillern men de allra flesta bara Readern.

Jag har testat att köra från båda varianterna.

Alltså minst Readern finns på alla..

Länken om du vill testa...

utbweb.boras.office.se/ludde

Nu när jag testade fick jag beskedet att filen inte kan öppnas...

Vore mycket tacksam om något kan hjälpa mig reda ut detta för just nu vet jag knappt vad jag gör :-)...


Svara

Sv: Streama?

Postades av 2003-02-03 00:12:34 - Andreas Hillqvist

KAn du bifoga lite mer av din kod?


Svara

Sv: Streama?

Postades av 2003-02-03 01:19:47 - Pelle Johansson

Det låter som filen inte stängts ordentligt innan du försöker anropa den. Det kan inte vara så att destillern inte hunnit göra klart filen? Du kan ju testa det genom att kontrollera om filen ligger där (på webbservern) samtidigt som du kör.

Om så är fallet, gör en loop där du tillåter det felet x gånger samtidigt som du försöker presentera dokumentet - då kanske du får de extra sekunder som destillern behöver för att göra klart pdf-filen.

Felmeddelandet pekar i alla fall på att filen för tillfället är öppen, så du får försöka finna vad felkällan kan vara, om det är destillern som inte släppt filen eller om något annan rutin ligger och håller denna fil öppen.


Svara

Sv: Streama?

Postades av 2003-02-03 05:58:16 - Lisbeth Dahlin

PDF-filerna skapades i december...:-) Fast det är klart, att när jag surfar från en dator med Distiller installerad så försöker "han" ju öppna filen igen... kan felet ligga där?

Här kommer hela koden

<code>
<%
response.buffer = true
if request.form("txtritningsnr") > "" then
'Här ligger alla .pdf-filer
Const PATH = "./ritningar/"

'Här hämtar vi numret...
sida = request.form("txtritningsnr")

'Här skapar vi rätt sökväg till filen
strSida = path & sida & ".pdf"

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open

'Med denna rad icke-remmad får jag felmeddelandet
'Arguments are of the wrong type, are out of acceptable range,
'or are in conflict with one another.
'objStream.Type = adTypeBinary '<--- OBS

'ta fram sökvägen till filen som skall öppas
'Felmeddelande på nedanstående rad: File could not be opened
objStream.LoadFromFile strSida '<--- OBS

'** ta sedan fram storleken på den med FSO
fil = server.mappath(".") & strSida
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set File = objFSO.GetFile(fil)
strFileSize = file.Size
Set File = Nothing
Set objFSO = Nothing

'ta fram vilken typ av file det är och bestäm Contentype
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case Else
'** alla andra filer
ContentType = "application/octet-stream"
End Select
Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.AddHeader "Content-Length", strFileSize

Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing
'Här ska vi åka iväg...
response.redirect(strsida)

end if

%>

</code>

Jag har alltså - tyvärr - gjort detta enligt papegojmetoden, d v s bara kopierat utan att förstå vad jag gör! Då går det som det går... :-)


Svara

Sv: Streama?

Postades av 2003-02-03 09:12:55 - Magnus Karlsson

Sätt
'objStream.Type = adTypeBinary'
till
'objStream.Type = 1'

Kan det funka. Det här med Stream och ladda in och ladda upp gör mig tokig. Det verkar inte finnas någon logik i det.


Svara

Sv: Streama?

Postades av 2003-02-03 09:15:33 - Lisbeth Dahlin

Tack för tipset! Ska testa senare...

Skönt att jag inte är ensam på att inte begripa... :-)


Svara

Sv: Streama?

Postades av 2003-02-03 09:50:55 - Lisbeth Dahlin

Har testat med 1 i stället för konstanten - hjälper inte! Får samma fel som när jag remmar den raden...

Någon mer som orkar komma med förslag?


Svara

Sv: Streama?

Postades av 2003-02-03 10:16:40 - Magnus Karlsson

Det var synd.


Svara

Sv: Streama?

Postades av 2003-02-03 10:21:10 - Andreas Hillqvist

Godmorgon solstråle. Gissar att det beror på att du använder / istället för \ när du försöker öppna din stream.
<code>
<%
Dim strPath
Dim RitningsNr
Const adTypeBinary = 1
Response.Buffer = true

'Här hämtar vi numret...
RitningsNr = ""& Request.Gorm("txtritningsnr")
If Len(RitningsNr) > 0 And InStr(RitningsNr,"\") = 0 Then
'Här ligger alla .pdf-filer
strPath = Server.MapPath("./ritningar/")

'Här skapar vi rätt sökväg till filen
strFileName = RitningsNr & ".pdf"
strSida = strPath & strFileName

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open

'Läser in filen til stream-objektet
objStream.LoadFromFile strSida '<--- OBS

'ta sedan fram storleken på filen
strFileSize = objStream.Size

Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.AddHeader "Content-Length", strFileSize

Response.Charset = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing

'###'Här ska vi åka iväg...
'###response.redirect(strsida)
End if

%>
</code>
Du kan inte göra en Response.Redirect(). Efter som den skickar ett bara et tomt svar med en header som säger asidan tillfäligt är ner använd "denna sidan".

Testa och se om du får samma felmedelande.

Jag har lagt in InStr(RitningsNr,"\") = 0 för att man bara skall komma åt filer i /ritningar/. Annars kan man ange ..\..\Login.asp eller något och på så sätt få källkoden till inlogningssidan. Eftersom du lägger till .pdf på RitningsNr tror jag inte det är så kinkigt. Men bäst att vara på den säkra sidan.

Om RitningsNr bara skall vara numerisk. Så kan du ersätta:
<code>
If Len(RitningsNr) > 0 And InStr(RitningsNr,"\") = 0 Then
</code>
Med:
<code>
If IsNumeric(RitningsNr) Then
</code>


Svara

Sv: Streama?

Postades av 2003-02-03 11:39:53 - Andreas Hillqvist

Har misat Request.Gorm. ;o)

Har deklarerat alla variabler och lagt till Optione explicit. Du bör inte ha någon mer kod på sidan än denna:
<code>
<%
Option Explicit

Dim strPath
Dim strSida
Dim strFileName
Dim lngFileSize
Dim RitningsNr
Dim objStream
Const adTypeBinary = 1
Response.Buffer = True
Response.Clear

'Här hämtar vi numret...
RitningsNr = "" & Request.Form("txtritningsnr")
If Len(RitningsNr) > 0 And InStr(RitningsNr, "\") = 0 Then
'Här ligger alla .pdf-filer
strPath = Server.MapPath("./ritningar/")

'Här skapar vi rätt sökväg till filen
strFileName = RitningsNr & ".pdf"
strSida = strPath & strFileName

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open

'Läser in filen til stream-objektet
objStream.LoadFromFile strSida '<--- OBS

'ta sedan fram storleken på filen
lngFileSize = objStream.Size

Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.AddHeader "Content-Length", lngFileSize

Response.Charset = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing
End If

Response.End
%>
</code>


Svara

Sv: Streama?

Postades av 2003-02-03 11:52:38 - Lisbeth Dahlin

Variabeldeklarationen och Option Explicit hade jag själv gjort under tiden, dessutom testat att rätt sökväg till filen skapas, vilket inte skedde, varför jag lade till "\" och nu blev det korrekt.

So far so good...

Nu har jag kompletterat med Andreas senaste (inte sista hoppas jag!) ändringar men också tagit bort mina kommentarer för att korta koden i nuläget...

Men icke... fortfarande samma resultat!

<code>
<% option explicit
dim strPath, strFileName, strSida, lngFileSize, RitningsNr, lngFileSize, objStream
Const adTypeBinary = 1
response.buffer = true
response.clear
RitningsNr = "" & request.form("txtritningsnr")
if len(ritningsNr) > 0 and InStr(RitningsNr,"\") = 0 then
strPath = server.MapPath("./ritningar/")
strFileName = ritningsnr & ".pdf"
strSida = strpath & "\" & strFileName
'response.write strsida
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile strSida
lngFileSize = objStream.Size

Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.AddHeader "Content-Length", lngFileSize
Response.Charset = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
'response.redirect(strsida)

end if
response.end

%>

</code>


Svara

Sv: Streama?

Postades av 2003-02-03 12:10:27 - Andreas Hillqvist

Ser lite skumt att du deklarerart lngFileSize två gånger.

Men du kan ju göra en betydligt enklare lösning:
<code>
<%
Option Explicit

Dim strPath
Dim strSida
Dim strFileName
Response.Buffer = True
Response.Clear

RitningsNr = "" & Request.Form("txtritningsnr")
If Len(RitningsNr) > 0 And InStr(RitningsNr, "\") = 0 Then
'Här ligger alla .pdf-filer
strPath = Server.MapPath("./ritningar/")

'Här skapar vi rätt sökväg till filen
strFileName = RitningsNr & ".pdf"
strSida = strPath & strFileName

Response.Redirect strSida
End If

Response.End
%>
</code>

Borde nog fungera i ditt fall.


Svara

Sv: Streama?

Postades av 2003-02-03 17:32:55 - Lisbeth Dahlin

Jag har nu tänkt om enligt Andras senaste förslag - det verkar för mig också en trolig lösning...

Jag har lagt in hans kod - och dessutom deklarerat RitningsNr... :-) samt kompletterat med den extra \ i sökvägen. Jag har kontrollerat att rätt fil hittas men sedan blir det fel igen...

<code>

<%
Option Explicit
Dim strPath
Dim strSida
Dim strFileName
Dim RitningsNr
Response.Buffer = True
Response.Clear

RitningsNr = "" & Request.Form("txtritningsnr")
If Len(RitningsNr) > 0 And InStr(RitningsNr, "\") = 0 Then
'Här ligger alla .pdf-filer
strPath = Server.MapPath("./ritningar/")

'Här skapar vi rätt sökväg till filen
strFileName = RitningsNr & ".pdf"
strSida = strPath & "\" & strFileName
response.write strSida
'Response.Redirect strSida
End If

Response.End
%>
</code>

När jag plockar bort ' före response.redirect så händer ingenting - inte ens innehållet i strSida visas...

Kan det vara så att det är någon som måste ändras på webbservern? För detta ska väl gå??????

Verkar vara ett litet problem men jag klarar inte ut det - trots hjälpen...


Svara

Sv: Streama?

Postades av 2003-02-03 22:23:57 - Andreas Hillqvist

Jag som missade att ta bort MapPath.

Prova med:
<code>
<%
Option Explicit

Dim strSida
Dim strFileName

'Här ligger alla .pdf-filer
Const strPath = "./ritningar/"

Response.Buffer = True
Response.Clear

RitningsNr = "" & Request.Form("txtritningsnr")
If Len(RitningsNr) > 0 Then

'Här skapar vi rätt sökväg till filen
strFileName = RitningsNr & ".pdf"
strSida = strPath & strFileName

Response.Redirect strSida
End If

Response.End
%>
</code>


Svara

Sv: Streama?

Postades av 2003-02-03 23:05:55 - Lisbeth Dahlin

Det var inte det enda du glömde... ;-) Även dim RitningsNr var bra att lägga dit...

Nu har jag kommit en bra bit på väg, inga protester, Acrobat startas, men aj! sedan säger Acrobat att filen är skadad och inte kan repareras.... (tar det aldrig slut!)

Jag tror inte att filen är skadad... men varför säger Acrobat så? På den dator jag kör just nu är hela Acrobat Distiller installerad. Filen är skapad i samma version.

En sista insats? ;-)

Om någon vill kolla är alltså URL:n utbweb.boras.office.se/ludde


Svara

Sv: Streama?

Postades av 2003-02-03 23:52:46 - Andreas Hillqvist

Du kan ju alltid lösa det med javascrip. Nog enklast. ;o)


Svara

Sv: Streama?

Postades av 2003-02-04 07:19:43 - Lisbeth Dahlin

För den som kan, ja! ;-(


Svara

Sv: Streama?

Postades av 2003-02-04 16:19:21 - Anders Moldin

Sidan funkar bra för mig nu...
Maila Adobe och fråga? ;)


Svara

Sv: Streama?

Postades av 2003-02-04 16:34:12 - Magnus Karlsson

"utbweb.boras.office.se/ludde" är PDF-filerna som skall visas tomma ?

Men många duktiga killar har svarat i detta inlägg som kanske kan hjälpa mig med mitt problem : http://www.pellesoft.nu/development/forum/view.asp?msgid=72042&forumid=1&sum=1



Svara

Sv: Streama?

Postades av 2003-02-04 17:53:34 - Lisbeth Dahlin

Nej filerna är inte tomma - det är verkliga pdf-filer. Molle - fick du verkligen upp något?


Svara

Sv: Streama?

Postades av 2003-02-04 20:47:07 - Anders Moldin

Ja, ser ett par datorer och så står det "Lifebook".
Alla tre funkar. Har iofs installerat både Acrobat Reader och Acrobat, om det nu skulle kunna göra nån skillnad, men det verkar för mig otroligt att det skulle ha nåt med det att göra.


Svara

Sv: Streama?

Postades av 2003-02-04 21:02:02 - Lisbeth Dahlin

Men det är ju rätt!!!!!!!!!!!!!!!!!!

Varför i .... funkar det inte hos mig då????????

*suckar*....

Det är nog dags att ge upp...

Tack alla som har hjälpt mig!


Svara

Sv: Streama?

Postades av 2003-02-09 07:07:32 - Lisbeth Dahlin

Det visade sig efter lite efterforskning att mitt problem är lokalt... Andra kan se allt korrekt men inte jag... Överlämnat åt tekniker!

Andreas korta kod utan stream funkar perfekt! Tack Andreas!




Svara

Nyligen

  • 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
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 810
27 960
271 761
813
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