» »

[ASP.NET (C#)] Kako zapisati in prebrati binary large object

[ASP.NET (C#)] Kako zapisati in prebrati binary large object

The B ::

Pozdravljeni!

Nisem vedel kam postaviti tole temo, ali v programiranje ali v izdelavo spletišč, pa se mi zdi da je tukaj več govora o .NET.

Problem:
Rad bi zapisal PDF dokument v varbinary polje v MSSql bazi. Potem pa bi ta PDF spet rad ponudil uporabnikom. Mislim da imam težave na obeh koncih.

Kako sem poskusil:
1. Zapisovanje v bazo:
            //Dolžina datoteke (byte)
            int dolzinaDatoteke = ClanekUpload.PostedFile.ContentLength;

            //Končnica
            string koncnica = System.IO.Path.GetExtension(ClanekUpload.PostedFile.FileName).ToLower();

            if (koncnica != ".pdf")
            {
                Napaka.InnerText = "Dovoljene so samo datoteke pdf";
                return;
            }

            //Ime datoteke
            string imeDatotke = System.IO.Path.GetFileNameWithoutExtension(ClanekUpload.PostedFile.FileName);

            //Preberemo datoteko v stream
            byte[] Podatki = new Byte[dolzinaDatoteke];
            ClanekUpload.FileContent.Read(Podatki, 0, dolzinaDatoteke);

            NovClanekCommand.Parameters["@Clanek"].Value = Podatki;
            NovClanekCommand.Parameters["@ImeDatoteke"].Value = imeDatotke;
            NovClanekCommand.Parameters["@Koncnica"].Value = koncnica;

2. Branje iz baze:
            Response.ContentType = "application/pdf";
            byte[] buffer = (byte[])IzpisiPDFReader.GetSqlBinary(5);
            Response.BinaryWrite(buffer);


Tole mi ne javlja nobenih errorjev pri zapisu v bazo. Ko pa hočem na ta način izpisat PDF, pa ne dela. Ali izpiše samo '%' (eksplorer) ali pa Acrobat reader javi napako da ni pravilen PDF (File does not begin with '%PDF-')

Malo se mi že meša, tak oda bo kakršna koli pomoč izredno dobrodošla.

B
The End Is The Beginning Is The End...
http://blaze.sopca.com/
  • spremenil: The B ()

The B ::

Zadevo sem rešil:

            //Dolžin datoteke (byte)
            long dolzinaDatoteke = ClanekUpload.PostedFile.InputStream.Length;

            //Končnica
            string koncnica = System.IO.Path.GetExtension(ClanekUpload.PostedFile.FileName).ToLower();

            if (koncnica != ".pdf")
            {
                Napaka.InnerText = "Dovoljene so samo datoteke pdf!";
                return;
            }

            if (dolzinaDatoteke == 0)
            {
                Napaka.InnerText = "Datoteka ni veljavna!";
                return;
            }

            //Ime datoteke
            string imeDatotke = System.IO.Path.GetFileNameWithoutExtension(ClanekUpload.PostedFile.FileName);

            //Preberemo datoteko v stream
            byte[] Podatki = new byte[dolzinaDatoteke];
            ClanekUpload.PostedFile.InputStream.Read(Podatki, 0, Podatki.Length);

            

            NovClanekCommand.Parameters.AddWithValue("@Clanek", Podatki);



Pa v bazi je bilo treba nastavit polje na image. Majne spremembe vendar očitno odločilne. Izpis, pa je očitno delal že prej.

Zadeva je požrla več živcev kot je bila vredna. In če bi ne bi bilo zaukazano, da mora delat, bi obupal že zdavnaj. Največji problem je bil da ni program javljal novenih napak. Samo zapisal ni ničesar v bazo...

B
The End Is The Beginning Is The End...
http://blaze.sopca.com/


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] savefiledialog, en sfd a več datotek

Oddelek: Programiranje
8740 (668) darkkk
»

c# tiho tiskanje slik.

Oddelek: Programiranje
101933 (1604) OmegaM
»

[c] Enaki datoteki

Oddelek: Programiranje
71029 (889) Spura
»

problem v C#

Oddelek: Programiranje
211969 (1684) dvojka
»

[asp.net] simpl image editor

Oddelek: Programiranje
61543 (1348) darkolord

Več podobnih tem