Just nu i M3-nätverket
Gå till innehåll

ASP / upload funktion


Springaren
 Share

Rekommendera Poster

Hej,

Jag har ett dilemma. Är inloggad som medlem (session ("id") och sen har jag annonser. Där vill jag lägga upp en bild på varje annons.

När jag kör detta så får jag fram <%=RecSet("id")%> ALLTSÅ ID PÅ ANNONSER. 

 

    
 <%

Set conn = Server.CreateObject("ADODB.Connection")

Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/db/members.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM annonser WHERE id=" & Request.Querystring("id")

RecSet.Open SQL, Conn, 1, 3

%>

<form action="" method="post">

<B>Annons ID:</b>&nbsp;<input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br>

</form>

 

 

Sen lägger upp denna kod för att ladda upp min bild:

 

 <%Response.Buffer=True

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/members.mdb")

If Request.Querystring("action")= "picin" Then

byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

contentType   = UploadRequest.Item("fil").Item("ContentType")
filepathname  = UploadRequest.Item("fil").Item("FileName")
filename         = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value              = UploadRequest.Item("fil").Item("Value")
Bild                  = filename 

' hämtar filextension 
extension = right(Bild,len(Bild) - instr(Bild,".") +1)

Filen = "bild_" & trim(Session("id2"))

' bygger ihop det nya filnamnet 
newfilename = Filen & extension 

Make_upload = False
Filetype           = lCase(right(Filename, len(Filename)-instrRev(Filename,".")))
Select Case Filetype
    Case "jpeg"
    Make_upload = True
    Case "jpg"
    Make_upload = True
    Case "png"
    Make_upload = True
    Case "gif"
    Make_upload = True
End Select

If Make_upload = True Then

If (byteCount / 1000) > 100 then 
  Session("mess") = "Bilden får max vara <b>100 kb</b>. <br>Din bild var <b>" & Round(byteCount / 1000,1) & "</b> kb!"
  Response.Redirect "upload_test.asp"
Else

Set RS=Conn.Execute("Select bild From annonser Where id=" & Session("id2"))

Set Mappkoll = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = Mappkoll.GetFolder(Server.MapPath("mempic"))

If Mappkoll.FileExists(Mapp & "/" & RS("bild")) Then
   Mappkoll.DeleteFile(Mapp & "/" & RS("bild"))
End If

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("mempic/" & newfilename))

For i = 1 to LenB(value)
   MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close 

Conn.Execute("Update annonser Set bild='" & newfilename & "' Where id=" & Session("id2"))
  Session("mess") = "Bilden är nu uppladdad!"%>
<script language="JavaScript">
<!--
window.opener.location.reload();
window.opener.location="upload_test.asp?id=<%=Session("id2")%>";
Close = window.close()
//-->
</script>

<!--#Include file="inc/function.asp"-->

<%End If
Else
  Session("mess") = "<b>" & extension & "</b> är inte tillåten. <br>Endast <b>.jpg</b>, <b>.jpeg</b> och <b>.gif</b> är tillåtna."
  Response.Redirect "upload.asp"
End If
End If%>

<html>
<head>
<title>Ladda upp bild</title>
<link rel="stylesheet" href="inc/style.css" type="text/css">
<script src="inc/js.js"></script>
</head>

<body bgcolor="#000000" onLoad="<%=mess%>">

<table width="100%" height="100%" cellspacing="0" cellpadding="3" style="Border: 1px solid #000000" bgcolor="#D5D2DA">
<form name="frmUpload" method="post" enctype="multipart/form-data" action="upload_test.asp?action=picin" onSubmit="return Mempic()">
 <tr>
    <td align="center" valign="top"><br><b><font size="2">Ladda upp foto till din annons!</font></b>
     <br><input type="file" name="fil">
     <br><div align="left"> &nbsp; <input type="submit" value="Ladda upp"></div>
     
   </td>
 </tr>
</form> 
</table>
 

Nu hamnar bilden i en mapp / Mempic/ med namn:  bild_30.jpg

Men hamnar fel i access databasen. Den hamnar på rad 30 i tabell ANNONSER. 

 

När jag loggar in så är min session ("id") =30. 

Men jag har en RECSET ("id") och den är EXEMPEL 130. Alltså id 130.

 

Vad gör jag för fel.........?? Tack på förhand.

Lite bråttom.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Du blandar Session("id") och Session("id2") kan det vara en möjlig felkälla? Och när du säger "på rad 30 i annonser" betyder det att id = radnummer eller har du råkat få en annan rad överskriven?

Länk till kommentar
Dela på andra webbplatser

Jag testade att ändra id till en id2 och det funkar exakt lika..     gjorde det innan sängdags igår kväll. 

 

 

Länk till kommentar
Dela på andra webbplatser

Är lite oklart vad du gör/gjort och vad du vill åstadkomma :) 

Hur får du session ("id")  vid inloggning, vad motsvarar det värdet? 

Vad är relationen mellan session ("id") och en annons Id?

 

  • Gilla 1
Länk till kommentar
Dela på andra webbplatser

Inloggning skapar ID från tabell Members.

 

Sen har jag en tabell annonser. Där också ID.

Varje annons är kopplad till Members ID.

 

När jag redigerar Annons har jag klick till Upload sidan. Ladda upp fil.

 

Mitt problem ser ut så här.

Jag har session ur = 30. Mitt ID vid inloggning.

 

När jag gör upload idag så hamnar min bild i en mapp samt bildnamn hamnar i tabell annonser ID 30.....fast annons jag gjorde upload hade ID exempel 118.

 

 

Länk till kommentar
Dela på andra webbplatser

Orosmoment är att du återanvänder begreppet ID på flera ställen. Använd istället tydligare begrepp, UserID, AdID, ImageID etc osv. Då blir det mycket enklare att hålla reda på vilket id som används och bör användas på de olika platserna. Spara även ditt id som en variabel i ditt script och använd variabeln, anropa inte Session("ID") mer än en gång per script. Då blir det också mycket enklare att följa koden exakt vad som används och när.

 

Exempelvis detta formulär

<form action="" method="post">
<B>Annons ID:</b>&nbsp;<input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br>
</form>

Används denna input id någonstans i ditt script? Jag ser att du använder det i en sql-select, men inte i din update exempelvis. Borde den användas i din update? Spara i så fall undan den i en variabel och använd variabeln så din kod blir tydligare att förstår.

Dim adID = Request.QueryString("ID")

Conn.Execute("Update annonser Set bild='" & newfilename & "' Where id=" & adID)

 

Länk till kommentar
Dela på andra webbplatser

5 timmar sedan, skrev Springaren:

Detta gjorde jag bara för att se vilket värde jag hade när jag klickade på annonsen där jag har en länk för att ladda upp bild. Jag får alltså rätt värde med mig till sidan. Det var så jag tänkte.

 

 

<form action="" method="post">
<B>Annons ID:</b>&nbsp;<input type="text" name="id" value="<%=RecSet("id")%>" size="5"><br>
</form>
Länk till kommentar
Dela på andra webbplatser

Jag och en granne som jobbar med databas hantering satt igår kväll och löste detta. Det fungerar nu!

Stort tack ALLA som har skrivit och läst!

 

Länk till kommentar
Dela på andra webbplatser

Du kan inte tänka dig att visa lösningen här utifall att det är någon som får ett likartat problem i framtiden?

Länk till kommentar
Dela på andra webbplatser

16 minuter sedan, skrev Cecilia:

Du kan inte tänka dig att visa lösningen här utifall att det är någon som får ett likartat problem i framtiden?

 

Skapade en AID

 "  Set RS=Conn.Execute("Select bild From annonser Where id=" & AID) "

 

följt av:

 

Set UpdateConn = Server.CreateObject("ADODB.Connection")

UpdateConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/db/members.mdb")&";"

 

Detta kollar vilka värden som skickas till sidan.

<script language="JavaScript">
<!--
  console.log('SESSION_ID', <%=Session("id")%>)
  console.log('SESSION_AID', <%=Session("aid")%>)
  console.log('AID', <%=AID%>)
  document.location="mina_annonser.asp?id=<%=Session("aid")%>";
//-->
</script>

  • Tack 1
Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...