17. marts 2006 - 11:54Der er
7 kommentarer og 1 løsning
Hvorfor upload koden skriver ikke filnavnet i Access-databasen
Jeg har en kode, der uploader filerne til en mappe på serveren. Den virker fint bortset fra at den ikke omdøber filnavnet ved at tilføje datoen til filnavnet. Men når den skal også skrive navnet i en Access database virker den ikke. Her er min kode:
if(upload_file.PostedFile.FileName.IndexOf("\\") > 0) { strFileName = upload_file.PostedFile.FileName.Substring(upload_file.PostedFile.FileName.LastIndexOf("\\") + 1); } else { // jeg ved ikke hvad det her gør godt for... måske gør du :o) strFileName = "ukendt fil"; } strFileName = DateTime.Now.ToString("yyyy-MM-dd-HHmmss")+"-"+strFileName; if(!File.Exists(Server.MapPath("uploading/" + strFileName))) { try { upload_file.PostedFile.SaveAs(Server.MapPath("uploading/" + strFileName));
OleDbConnection con = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Server.MapPath(fpdb/stillingsopslag.mdb/)"); con.Open(); OleDbCommand cmd = new OleDbCommand ("INSERT INTO upload (Vedhaeft) VALUES ('" + strFileName + "','" + DateTime.Now.ToString("") + "')", con); Response.Write(cmd.CommandText); cmd.ExecuteNonQuery(); con.Close(); } catch(Exception ex) { Response.Write("Der skete en fejl ved processering af uploading: " + ex.Message); } Response.Write("Filnavn eksisterer allerede, prøv at ombøbe filen!"); }
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
I din sql streng indikerer du to felter istedet for at tilfoeje datoen. Hvis du har et felt til filnavn og et til dato skal du aendre i starten af SQL'en INSERT INTO uplaod(vedhaft, dato).... Hvis du vil tilfoeje dato-navnen skal to ikke separere strFileName og DateTime med komma inde i VALUES() parantesen. Prev med & istedet. ('" + strFileName & DateTime.Now.ToString("")
Jeg har skrevet sådan, men det virker ikke: .... OleDbCommand cmd = new OleDbCommand ("INSERT INTO upload (Vedhaeft) VALUES ('" + strFileName & DateTime.Now.ToString("") + "')", con); ....
Egentlig har jeg i databasen kun 2 felter: ID og Vedhaeft. Så jeg ville gerne bare at tilføje (datoen yyyy-mm-dd-HHmmss) til uploadede filnavn for at forhindre overskrivning, hvis filen findes allerede i databasen.
Jeg har nu skrevet bare: OleDbCommand cmd = new OleDbCommand ("INSERT INTO upload (Vedhaeft) VALUES ('" + strFileName + "')", con); Denne virker heller ikke. Jeg får hele tiden følgende fejl i browseren, selv om min web.config er allerede ændret: ------------------------------ <!-- Web.Config Configuration File -->
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->
<configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> </system.web> </configuration> ------------------------------- Iøvrigt arbejder jeg med FrontPage 2003 og .NET er installeret på serveren.
:s - ok saa er jeg lidt lost. Det lyder umiddelbart som om du har problemer med at komme i kontakt med din db. Forhaqabentligt er der andre der kender bedre til den side af sagen..
Hvis du ikke får en detalieret fejl beskrivelse er din web.config ikke sat rigtigt op er du sikker på at du har sat debug="true" og customErrors mode="Off" der er noget der tyder på at du mangler det ene elelr det andet ?
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.