file upload i IE

Tags:    .net

Hej jeg prøver at opdatere nogle felter i min ms sql database.

Og det hele virker fint i mozilla firefox.
Men når jeg prøver det i internet explorer, så kommer den med en fejlmeddellelse:
String or binary data would be truncated.
The statement has been terminated.

Jeg tror det har noget at gøre med at jeg uploader billeder.

min kode ser sådan ud:
Fold kodeboks ind/udKode 


i kan selv teste det på: http://radio.web.surftown.dk/admin/vis_program.aspx

og så klik på skriv beskrivelse, det er kun i IE det ikke virker.

Er der nogle som kunne vide hvad problemet er?

Mvh. Adam



IE returnere hele stien, FF kun filnavn..

Prøv selv

c:\1.jpg

Det virker fint, for stien kan være i DB, så du skal altså kun gennem filnavnet..

Desuden bør du først lave SQL når filen er gemt, og der har du samtidigt filnavnet, og ikke værdien fra fileinputtet.

Jeg mener forresten også at en fileupload har en metode til at save, så du er fri for alt det andet.

/J



Jeg kan godt se, at du har lagt et billede ind som har stien: c:\1.jpg

Men jeg forstår ikke hvordan, fordi når jeg prøver det i explorer så kommer den kun med en fejl og lægger sig ikke i db.

brugte du explorer til at teste det?

Men hvordan ville jeg så gøre sådan så jeg kun gemmer filnavnet og ikke hele stien?



Dette felt er for lille i databasen, når det er IE, da, IE returerer alt for lang en sti.

Altså¨ex hvis jeg tog sammme billede fra mine dokumenter:

FF : 1.jpg
IE : c:\documents n settings\administrator\documents\pictures\1.jpg .. der er stien for lang, og jeg vil gætte på at feltet @img_url kun må være få tegn.

--- > objcmd.Parameters.AddWithValue("@img_url", FileUpload.Value); --> det er FileUpload.Value der er for lang.

/J






Ja det forstår jeg godt, og det er rigtigt nok.
at stien bliver for lang. Men hvordan skriver jeg i min kode så den kun tager "filnavn.jpg"
ligesom den gør i firefox?

mvh. Adam



Du gemmer den til serveren her:

System.IO.FileStream newFile = new System.IO.FileStream(Server.MapPath(sSavePath + sFilename),
System.IO.FileMode.Create);
newFile.Write(myData, 0, myData.Length);
newFile.Close();


Og så spørger du hvordan du får fat i filnavnet ? - Jeg skulle formode at hvis den gemmer korrekt på serveren, at filnavnet er "sFilename".

Og at du bør ligge dit SQL kald EFTER du har gemt på serveren.

Venligst.



Indlæg senest redigeret d. 09.01.2009 14:46 af Bruger #5789
sry repost



Indlæg senest redigeret d. 09.01.2009 14:43 af Bruger #5789
Ok nu tror jeg da at jeg har forstået dig rigtigt, ved at smide mine sql statements ind efter

System.IO.FileStream newFile = new System.IO.FileStream(Server.MapPath(sSavePath + sFilename),
System.IO.FileMode.Create);
newFile.Write(myData, 0, myData.Length);
newFile.Close();

men det har jeg også gjort nu, men det virker stadig ikke.

Nu ser min kode sådan ud:

Fold kodeboks ind/udKode 


Var det ikke det du mente?



t