Avatar billede beef12 Nybegynder
25. februar 2007 - 09:19 Der er 14 kommentarer og
1 løsning

Problem med filupload

Når jeg bruger nedenstående kode til at uploade et billede som jeg poster fra min form, får jeg altid værdien "0x53797374656D2E427974655B5D" i databasen uanset hvilken fil jeg forsøger at uploade. Nogen der ved hvorfor?


int len = FileUpload1.PostedFile.ContentLength;
        if (len > 0)
        {
            byte[] pic = new byte[len];
            PostedFile.PostedFile.InputStream.Read(pic, 0, len);
            cmd.ExecuteNonQuery("update Image set picture = '" + pic + "' where id = " + getId + " ");
        }
Avatar billede kalp Novice
25. februar 2007 - 09:34 #1
benyt dig af WebClient klassen istedet.. den har 2 forskellige Upload metoder som du kan benytte og den fungere super godt.
Avatar billede beef12 Nybegynder
25. februar 2007 - 09:40 #2
ok. Husk at jeg forsøger at uploade til DB. Kan jeg gøre det med webclient?

Hvis ja, har du noget eksempelkode?
Avatar billede kalp Novice
25. februar 2007 - 09:50 #3
ja det er bytes så det er ikke et problem.

WebClient client = new WebClient();
byte[] fil = client.UploadFile ("ftp://www.ditdomain.dk","c:\\etellerandettest\enfil.rar");

Det eneste der skal virke her er det med dit domaine.. kan være lidt sikkerhedsissue, men det burde der ikke være når den jo køre på serveren.

kan være du også blot kan skrive "\" så havner den i roden.
Avatar billede beef12 Nybegynder
25. februar 2007 - 09:52 #4
Hvordan får du det ind i databasen?
Avatar billede kalp Novice
25. februar 2007 - 09:55 #5
med hensyn til din egen kode så skal det nok mere være
FileUpload1.PostedFile.InputStream
en contentlength..

har du fået noget i dit byte[] array? så kan jeg godt fortælle dig hvordan du gemmer det i din db.
Avatar billede beef12 Nybegynder
25. februar 2007 - 10:01 #6
ja den fejl har rettet.
Jeg får data ind i mit byte array.
Avatar billede kalp Novice
25. februar 2007 - 10:02 #7
okay, men hvad datatype er picture i din db? og er det mssql?
Avatar billede beef12 Nybegynder
25. februar 2007 - 10:33 #8
Ja mssql og gif.
Avatar billede beef12 Nybegynder
25. februar 2007 - 10:34 #9
undskyld i db'en er datatypen: IMAGE
Avatar billede kalp Novice
25. februar 2007 - 10:43 #10
nu har jeg ikke set dine nye rettelser.. men det skal se sådan her ud med det du viste tidligere.. så kan du selv implementere det i dine egne rettelser.

int len = FileUpload1.PostedFile.ContentLength;
        if (len > 0)
        {
            byte[] pic = new byte[len];
            PostedFile.PostedFile.InputStream.Read(pic, 0, len);
string sql = update Image set picture =  @pic where id = " + getId + " ";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@pic",pic);
            cmd.ExecuteNonQuery(sql);
        }
Avatar billede kalp Novice
25. februar 2007 - 10:44 #11
string sql = "update Image set picture =  @pic where id = " + getId + " ";


der manglede lige et "
:)
Avatar billede kalp Novice
25. februar 2007 - 10:48 #12
du kan evt. også prøve med

command.Parameters.Add("@pic",SqlDbType.Image,pic.Length,"picture");

istedet for

cmd.Parameters.AddWithValue("@pic",pic);


men alt det andet skal stadig være som før.
Avatar billede beef12 Nybegynder
25. februar 2007 - 10:55 #13
Tak - det hjalp.
Smid et svar og points er dine :-)
Avatar billede kalp Novice
25. februar 2007 - 11:04 #14
hvilken en af dem brugte du?
AddWithValue eller bare Add?

og selv tak:) svar kommer her:)
Avatar billede beef12 Nybegynder
25. februar 2007 - 11:21 #15
AddWithValue
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester