/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Lille problem ASPupload-formular
Fra : Jimmy Snedker


Dato : 10-09-03 08:58

Hej alle!

Jeg har en formular, hvorfra man kan uploade et billede ( bruger
ASPupload )samt tekst,dato osv. - informationer bliver sendt til
upload.asp - Scriptet i denne filen accepterer ikke hvis der ikke
er noget billede med - og derved bliver oplysninger ikke
uploadet!

Dette vil jeg gerne undgå - således, at hvis man lader
uploadfeltet ("File1") stå tomt så uploader scriptet stadig de
resterende oplysninger. Jeg har prøvet at rode med scriptet men
uden held - håber nogen kan hjælpe?!

MVH

Jimmy

(upload.asp)
--snip ---
<%

Set Upload = Server.CreateObject("Persits.Upload")

'Du sætter ScriptTimeout således:
Server.ScriptTimeout = 180


' This is needed to enable the progress indicator
Upload.ProgressID = Request.QueryString("PID")

' Capture files
Upload.Save("minbilledemappe")

' Obtain file object
Set File1 = Upload.Files("File1")

If Not File1 Is Nothing Then
' Build ODBC connection string
Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("mindatabase.mdb")

' If you use SQL Server, the connecton string must look as
follows:
' Connect = "Driver=SQL
Server;Server=MYSERVER;UID=sa;PWD=xxxxxxxxx"

' Build SQL INSERT statement
SQL = "INSERT INTO news(image_blob, oversk, dato, imgstatus,
file1, nyhed, jaintlink, intlink, inttxt, jawww, www, txtwww,
jaemail, email, txtemail) VALUES(?, '"
SQL = SQL & Replace(Upload.Form("oversk"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("dato"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("imgstatus"), "'", "''") & "',
'"
SQL = SQL & File1.Filename & "', '"
SQL = SQL & Replace(Upload.Form("nyhed"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("jaintlink"), "'", "''") & "',
'"
SQL = SQL & Replace(Upload.Form("intlink"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("inttxt"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("jawww"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("www"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("txtwww"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("jaemail"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("email"), "'", "''") & "', '"
SQL = SQL & Replace(Upload.Form("txtemail"), "'", "''") & "')"

' Save to database
File1.ToDatabase Connect, SQL
Response.Write "Nyheden er uploadet."
Else
Response.Write "File not selected."
End If

%>



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
mcfritten (10-09-2003)
Kommentar
Fra : mcfritten


Dato : 10-09-03 16:10

Jeg ved ike om det dur, men prøv det:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("DIN-DATABASE.mdb")
Conn.Open DSN

Set Upload = Server.CreateObject("Persits.Upload")
'det der står i ()skal ikke være med det er kun for at fortælle hvad
de hedder og ()skal heller ikke være med
sql="select billedsti(din kolonnenavn til billed) from bruger(din
tabelnavn) where id=(din primærnøgle)"
set rs=conn.execute(sql)

'Du sætter ScriptTimeout således:
Server.ScriptTimeout = 180

' Limit file size to 100000 bytes, throw an exception if file is
larger
Upload.SetMaxSize 100000, True
Upload.OverwriteFiles = False

' Intercept all exceptions to display user-friendly error
On Error Resume Next

' This is needed to enable the progress indicator
Upload.ProgressID = Request.QueryString("PID")

' Capture files
Upload.Save "minbilledemappe"

' 8 is the number of "File too large" exception
If Err.Number = 8 Then
Response.Write "Filen er for stor. Du kan højest uploade 100.000
bytes (100KB). Prøv venligst igen."
Else

For Each File in Upload.Files
'det der står i ()skal ikke være med det er kun for at fortælle hvad
de hedder og ()skal heller ikke være med
sql="update bruger(din tabelnavn) set pic=1(din kolonnenavn
der fortæller om der er et billed eller ikke) where id=(din
primærnøgle)" & session("brugeronline")
    conn.execute(sql)

filnavn=File.FileName

' Build SQL INSERT statement
SQL = "Update DIN-TABEL set "

strSQL = strSQL & "oversk='" & upload.form("oversk") & "', "
strSQL = strSQL & "dato='" & upload.form("dato") & "', "
strSQL = strSQL & "imgstatus='" & upload.form("imgstatus") & "', "
strSQL = strSQL & "billedsti='" & "images/" & filnavn & "', "
strSQL = strSQL & "nyhed='" & upload.form("nyhed") & "', "
strSQL = strSQL & "jaintlink='" & upload.form("jaintlink") & "', "
strSQL = strSQL & "intlink='" & upload.form("intlink") & "', "
strSQL = strSQL & "inttxt='" & upload.form("inttxt") & "', "
strSQL = strSQL & "jawww='" & upload.form("jawww") & "', "
strSQL = strSQL & "www='" & upload.form("www") & "', "
strSQL = strSQL & "txtwww='" & upload.form("txtwww") & "', "
strSQL = strSQL & "jaemail='" & upload.form("jaemail") & "', "
strSQL = strSQL & "email='" & upload.form("email") & "', "
strSQL = strSQL & "txtemail='" & upload.form("txtemail") & "', "

      conn.execute(strsql)
Next
%>
<%
if Upload = true
then
Response.Write "Nyheden er uploadet."
Else
Response.Write "File not selected."
End If

%>



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jimmy Snedker (11-09-2003)
Kommentar
Fra : Jimmy Snedker


Dato : 11-09-03 08:54

Hej!


Jeg tror ikke helt jeg forstår ...kan du skærer det mere ud i pap?


&gt; For Each File in Upload.Files
&gt; 'det der står i ()skal ikke være med det er kun for at fortælle
hvad
&gt; de hedder og ()skal heller ikke være med
&gt; sql="update bruger(din tabelnavn) set pic=1(din kolonnenavn
&gt; der fortæller om der er et billed eller ikke) where id=(din
&gt; primærnøgle)" & session("brugeronline")
&gt;     conn.execute(sql)
&gt;
&gt; filnavn=File.FileName
&gt;


Hvorfor 'Update' og ikke 'Insert'?

&gt; ' Build SQL INSERT statement
&gt; SQL = "Update DIN-TABEL set "
&gt;


MVH

Jimmy Snedker


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

mcfritten (11-09-2003)
Kommentar
Fra : mcfritten


Dato : 11-09-03 15:16

Jimmy Snedker wrote in dk.edb.internet.webdesign.serverside.asp:
> Hej!
>
>
> Jeg tror ikke helt jeg forstår ...kan du skærer det mere ud i pap?
>
>
> > For Each File in Upload.Files
> > 'det der står i ()skal ikke være med det er kun for at fortælle
> hvad
> > de hedder og ()skal heller ikke være med
> > sql="update bruger(din tabelnavn) set pic=1(din kolonnenavn
> > der fortæller om der er et billed eller ikke) where id=(din
> > primærnøgle)" & session("brugeronline")
> >     conn.execute(sql)
> >
Det ovenfor, det der er sket er at jeg har ændret, de forskellige
tabelnavne og kolonne, det er for at jeg ikke kender de navne du har for
tabeller, kolonner osv osv, så derfor denne ' og tekst det var for at
prøve at forklare at de navne skulle ændres til det du har, og at ()
skulle ikke være med heller.

> > filnavn=File.FileName
> >
>
>
> Hvorfor 'Update' og ikke 'Insert'?
>
> > ' Build SQL INSERT statement
> > SQL = "Update DIN-TABEL set "
> >
Dette var for at det så lige ud som om at det var en brugerlogin, hvor en
enklte bruger kunne ændre sine oplysninger i, der for skrev jeg Update, og
DIN-TABEL skulle ændres til dit tabelnavn.
>
> MVH
>
> Jimmy Snedker

Men som jeg også skrev var jeg ikke sikker på at det virker, jeg har taget
det ud fra noget kode jeg bruger, så det er nok gået lidt stærkt.
MVH
MCfritten.dk c",)
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (11-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-09-03 09:58

mcfritten skrev:


> ' Intercept all exceptions to display user-friendly error
> On Error Resume Next

Man skal være varsom med at bruge Resume Next mens man udvikler.
Fejlmeddelelser er gode til at rette fejl efter ;)

Når systemet er oppe kan det være en fin ide at komme med "pæne"
fejlmeddelelser, ikke før.


> For Each File in Upload.Files

> sql="update bruger(din tabelnavn) set pic=1(din
> kolonnenavn
> der fortæller om der er et billed eller ikke) where id=(din
> primærnøgle)" & session("brugeronline")
> conn.execute(sql)

Hvorfor skal brugeropdateringen køres for alle filer? En
sqlkommando der ikke afhænger af løkken bør ikke ligge inde i den.



> ' Build SQL INSERT statement
> SQL = "Update DIN-TABEL set "

Som Jimmy også har bemærket er der ikke rigtig sammenhæng mellem
kommentar og kommando her.

[snip - set-kommandoer]

> strSQL = strSQL & "txtemail='" & upload.form("txtemail") & "',

Her mangler vist noget. Du slutter sql-kommandoen med et komma -
det giver syntaksfejl. Og du har slet ingen WHERE-del - det vil
sige at du opdaterer samtlige poster i tabellen. Måske var det
alligevel en INSERT du ville lave - den ser bare lidt anderledes
ud:


INSERT INTO tabelnavn
   (tekstfelt1, tekstfelt2, talfelt)
VALUES
   ('værdi1', 'værdi2', 42)
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste