Avatar billede Driton Seniormester
26. december 2010 - 23:16 Der er 4 kommentarer og
1 løsning

Fileupload

Jeg har en parameter der hedder
cmd2.Parameters.Add("@Billeder", FileUpload_billede);
men jeg mangler en del kode før det virker, jeg har kigget på nettet og synes der er en masse ting som ikke passer ind til min,
jeg skal bare bruge en der er simple og kan gemme billeder på min database og vise det efter er det nogle der kan hjælpe mig med det?
Avatar billede arne_v Ekspert
26. december 2010 - 23:27 #1
ASP.NET har en kontrol til det. Du henter et byte array fra den og bruger det som værdi. Så bør det virke.
Avatar billede Driton Seniormester
26. december 2010 - 23:35 #2
FileUpload FileUpload = FileUpload_billede;
        string virtualFolder = "~/images/";
        string physicalFolder = Server.MapPath(virtualFolder);
        FileUpload_billede.SaveAs(physicalFolder + FileUpload_billede.FileName);

        SqlConnection Conn2 = new SqlConnection();
        Conn2.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlCommand cmd2 = new SqlCommand();
        cmd2.Connection = Conn2;
        cmd2.CommandText = ("insert into Projekter(Navn, Billeder, Dato, Beskrivelse, link) values (@Navn, @Billeder, @Dato, @Beskrivelse, @link)");
        cmd2.Parameters.Add("@Navn", TextBox_opgave_navn.Text);
        cmd2.Parameters.Add("@Billeder", FileUpload);
        cmd2.Parameters.Add("@Dato",DateTime.Now);
        cmd2.Parameters.Add("@Beskrivelse", TextBox_Beskrivelse_opgaver.Text);
        cmd2.Parameters.Add("@link", TextBox_Opgave_link.Text);
        Conn2.Open();
        cmd2.ExecuteNonQuery();
        Conn2.Close();
        Label_succes.Text = "Din ny opgave er oprettet";

Nu har jeg en kode der ser sådan ud, men får hele tiden fejlen.
No mapping exists from object type System.Web.UI.WebControls.FileUpload to a known managed provider native type.
Avatar billede Klaus_S Praktikant
27. december 2010 - 01:35 #3
For mig at se må der mangle en / i linjen
FileUpload_billede.SaveAs(physicalFolder + FileUpload_billede.FileName);

Tror du skal bruge FileUpload_billede.SaveAs(physicalFolder + "/" + FileUpload_billede.FileName);

Det er det jeg bruger men jeg gemmer billedet på serveren og gemmer herefter sti til billedet i databasen. Skal du gemme billedet som byte array som arne foreslår skal du ikke bruge filname men derimod bruge

cmd2.Parameters.Add("@Name", FileUpload_billed.Filename)
cmd2.Parameters.Add("@Vaerdi", FileUpload_billed.PostedFile.ContentType)
cmd2.Parameters.Add("@Laengde", FileUpload_billed.PostedFile.ContentLength)
cmd2.Parameters.Add("@Billeder", FileUpload_billed.FileBytes)


Nu fremgår det ikke i hvilken sammenhæng du skal bruge det. I mit tilfælde var det et datingsite hvor klienterne selv kunne oploade profilbilleder og gallerier så jeg oprettede automatisk en mappe for hver profil hvor de rent fysisk ligger. Jeg blev frarådet at gemme dem i BLOB felter.
Avatar billede arne_v Ekspert
27. december 2010 - 01:47 #4
cmd2.Parameters.Add("@Billeder", FileUpload);

forsøger at gemme en ASP.NET kontrol. Det duer ikke.

Du skal enten gemme et byte[] med indholdet af filen eller gemme et filnavn.
Avatar billede arne_v Ekspert
03. marts 2011 - 03:48 #5
Kommet videre?
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

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