Avatar billede dj-sejler Praktikant
01. marts 2003 - 16:10 Der er 51 kommentarer og
1 løsning

admin-opload af billeder...

Hej...
Jeg kunne godt tænke mig at lave en admin-side hvor jeg kan oploade et billede og noget tekst til min hp.

Jeg ved ikke hvordan man gør, men har fået at vide at det kan lade sig gøre...

Det skulle gerne være sådan at man kan vælge et billede, og skriver en titel og billedetekst.

billedet bliver smidt i en mappe (/www/jpg/) med et nyt navn som den får ved hjælp af: autonummerering i accessdatabase felt med "Replikerings-id" istedet for hele tal
sådan at billedets navn er det samme som id'en fra databasen - bare med efternavn

titel og billedetekst skal selvfølgelig ned i databasen...

Er der nogen der kan hjælpe... og det skal være begynderhjælp for jeg forstår ikke meget at det jeg har læst mig til hist og pist

håber i forstår hvad jeg mener...
Avatar billede eagleeye Praktikant
01. marts 2003 - 16:47 #1
Alt efter hvilken upload komponent du har kan det gøres i stil med dette:

Set upload = Sever.CreateObject("xxxx_upload")
Upload.savevirtual


'Lav SQL og åben til et databasen
'Sæt WHERE ID=0 for ikke at få nogle record i recordsetet
Set rs = Sever.CreateObject("ADODB.REcordSet")
SQL = "SELECT * FROM tabelnavn WHERE ID=0"
rs.Open SQL, Conn, 1, 3
rs.AddNew
rs("titel") = Upload.Form("title")
rs("billedetekst") = Upload.Form("billedetekst")
rs.Update
id = rs("id")

Set file = Upload.Files("navnpåfilinputfelt")
file.SaveAs "/jpg/" & id & "." & file.ExtractFileExtention
Avatar billede dj-sejler Praktikant
01. marts 2003 - 17:32 #2
Jeg havde tænkt noget i denne retning...

Jeg har aeImage & ASP upload (ved ikke hvad der er hvad)

Bortset fra at jeg ikke ved hvordan man laver et "fil input felt"

<--- tilfoej.asp --->
<%
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM indlaeg WHERE (ID = 0)"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../log/database.mdb")
rstemp.Open strSQL, strDSN, 1, 3

rs.AddNew
rs("Tite") = strTitel
rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update

Set file = Upload.Files("filinput")
file.SaveAs "/www/jpg/" & id & "." & file.ExtractFileExtention

End If
%>

<html>
<head>
<title>opload</title>
</head>
<body>

<table cellpadding=2 cellspacing=2 border=1 bordercolor=black class=format width="500">

 
  <tr>
    <td width="100%" colspan="3">
    <br>

<form method="POST" action="tilfoej.asp">
  <div align="center">
    <center>
    <table border="0" width="75%" cellspacing="0" cellpadding="0" height="223">
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Titel:</font><br>
          <input type="text" name="Titel" size="28" class="box" tabindex="1" value="<%=strTitel%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="62"><font face="Verdana" size="2">Billedtekst:</font><br>
          <textarea rows="8" name="Tekst" cols="45" class="scrollbarbox" tabindex="2">
          <%=strTekst%></textarea>
        </td>
      </tr>

--> Her skulle oploadfeltet så have været...

      <tr>
        <td width="100%" height="46"><br>
          <input type="submit" value="  Add Tag  " name="Add" class="box" tabindex="5">&nbsp;&nbsp;
          <input type="button" value="  Annuller  " name="Annuller" class="box" onClick="java script:location.href='indlaeg.asp'" tabindex="6">
        </td>
      </tr>
    </table>

</body>
</html>
Avatar billede eagleeye Praktikant
01. marts 2003 - 18:01 #3
Skulle det ikke være aspImage ??
Det er en kompunent som kan rezise/ligge tekst ind på billeder mm, den er faktisk ganske god.

ASPupload: Upload kompunenet.
Avatar billede eagleeye Praktikant
01. marts 2003 - 18:03 #4
Dit input felt kan se såan her ud:


<INPUT TYPE="FILE" SIZE="40" NAME="FILE1">
Avatar billede eagleeye Praktikant
01. marts 2003 - 18:03 #5
Manual til ASPupload: http://www.aspupload.com/manual.html
Avatar billede dj-sejler Praktikant
01. marts 2003 - 18:21 #6
den aspupload-side har jeg kigget længe på... og jeg må erkende at jeg fatter brik af det... :(
Avatar billede eagleeye Praktikant
01. marts 2003 - 18:53 #7
Din side tilfoej.asp skal være i stil med dette:

<--- tilfoej.asp --->
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save      'Save to memory

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM indlaeg WHERE (ID = 0)"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../log/database.mdb")
rstemp.Open strSQL, strDSN, 1, 3

strTitel = Upload.Form("Titel")
strTekst = Upload.Form("Tekst")

rs.AddNew
rs("Tite") = strTitel
rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update

Set file = Upload.Files("FILE1")
file.SaveAsVirtual "/www/jpg/" & id & "." & file.Ext

%>
Avatar billede eagleeye Praktikant
01. marts 2003 - 18:54 #8
Form-tagen skal laves om fra:

<form method="POST" action="tilfoej.asp">

Til:
<form method="POST" action="tilfoej.asp" ENCTYPE="multipart/form-data">
Avatar billede dj-sejler Praktikant
02. marts 2003 - 00:28 #9
Jeg har ændret det du har sagt og tilpasset det men så får jeg følgende fejl:

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Upload.Save'

/email/tilfoej.asp, line 3
Avatar billede eagleeye Praktikant
02. marts 2003 - 16:14 #10
Så skal den nok være:

Upload.SaveToMemory
Avatar billede dj-sejler Praktikant
02. marts 2003 - 17:41 #11
Jeg har sat det der Upload.SaveToMemory ind på 3. linie i stedet for Upload.Save
men så får jeg denne fej:

Persits.Upload.1 error '800a0003'

Nothing has been posted.

/email/tilfoej.asp, line 3
Avatar billede eagleeye Praktikant
02. marts 2003 - 17:43 #12
Har du tilføjet dette til <form> taggen?  ENCTYPE="multipart/form-data"
Avatar billede dj-sejler Praktikant
02. marts 2003 - 18:05 #13
jaja...

min side se sådan ud:

<-- tilfoej.asp -->
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveToMemory    'Save to memory

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tabel WHERE (ID = 0)"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../log/database.mdb")
rstemp.Open strSQL, strDSN, 1, 3

strTitel = Upload.Form("Titel")
strTekst = Upload.Form("Tekst")

rs.AddNew
rs("Tite") = strTitel
rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update

Set file = Upload.Files("FILE1")
file.SaveAsVirtual "/www/jpg/" & id & "." & file.Ext

%>

<html>
<head>
<title>opload</title>
</head>
<body>

<table cellpadding=2 cellspacing=2 border=1 bordercolor=black class=format width="500">

 
  <tr>
    <td width="100%" colspan="3">
    <br>

<form method="POST" action="tilfoej.asp" ENCTYPE="multipart/form-data">
  <div align="center">
    <center>
    <table border="0" width="75%" cellspacing="0" cellpadding="0" height="223">
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Titel:</font><br>
          <input type="text" name="Titel" size="28" class="box" tabindex="1" value="<%=strTitel%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="62"><font face="Verdana" size="2">Billedtekst:</font><br>
          <textarea rows="8" name="Tekst" cols="45" class="scrollbarbox" tabindex="2">
          <%=strTekst%></textarea>
        </td>
      </tr>

      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Titel:</font><br>
      <INPUT TYPE="FILE" SIZE="28" NAME="FILE1" tabindex="3">
          <input type="text" name="File1" size="28" class="box" tabindex="1" value="<%=strFile1%>">
        </td>
      </tr>



      <tr>
        <td width="100%" height="46"><br>
          <input type="submit" value="  Add Tag  " name="Add" class="box" tabindex="4">&nbsp;&nbsp;
          <input type="button" value="  Annuller  " name="Annuller" class="box" onClick="java script:location.href='indlaeg.asp'" tabindex="5">
        </td>
      </tr>
    </table>

</body>
</html>
Avatar billede eagleeye Praktikant
02. marts 2003 - 18:40 #14
Der er to felter der hedder det samme godt nok det to forskellige typer men det plejer ikke at gå godt. De to hedder FILE1

      <INPUT TYPE="FILE" SIZE="28" NAME="FILE1" tabindex="3">
          <input type="text" name="File1" size="28" class="box" tabindex="1" value="<%=strFile1%>">

Dette input bruges til atvælge en fil:

      <INPUT TYPE="FILE" SIZE="28" NAME="FILE1" tabindex="3">
Avatar billede dj-sejler Praktikant
02. marts 2003 - 19:23 #15
Nu har jeg slettet:
<input type="text" name="File1" size="28" class="box" tabindex="1" value="<%=strFile1%>">

men den kommer med samme fejl!
Avatar billede eagleeye Praktikant
02. marts 2003 - 20:13 #16
Du kan se noget om fejlkoder her:
http://host.virginia.com/components/aspupload/faq.htm

Har du valgt et billede, når du tester?
Avatar billede dj-sejler Praktikant
02. marts 2003 - 20:27 #17
nej for når jeg loader siden sker får jeg fejlmelingen med det samme...
www.bandholmsejlklub.dk/email/tilfoej.asp
Avatar billede eagleeye Praktikant
02. marts 2003 - 20:33 #18
Arh koden ligger på samme side?
Så skal der lige et tjek ind om formen er blevet post'et til siden:


<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Upload = Server.CreateObject("Persits.Upload.1")
  Upload.SaveToMemory    'Save to memory
  ..
  ..
  ..
  file.SaveAsVirtual "/www/jpg/" & id & "." & file.Ext
end if
Avatar billede dj-sejler Praktikant
03. marts 2003 - 19:40 #19
ja okay... nu er den rettet til... og side loader fint...

MEN

jeg får denne fejl når jeg oploader billedet:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/email/tilfoej.asp, line 16
Avatar billede eagleeye Praktikant
03. marts 2003 - 19:47 #20
Det betyder et kolonnenavn ikke findes i databasen, det er nok i denne linje:

rs("Tite")

Det skal vel være "Title" ??
Avatar billede eagleeye Praktikant
03. marts 2003 - 19:48 #21
For at id får en værdi så tilføj:  id = rs("id")

rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update
id = rs("id")                '<------------------ Skal med her
Avatar billede dj-sejler Praktikant
03. marts 2003 - 19:52 #22
Ja så er de fejl rettet og den nye fejlmeling er:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/email/tilfoej.asp, line 10

rs.Open strSQL, strDSN, 1, 3  <---
Avatar billede dj-sejler Praktikant
03. marts 2003 - 19:52 #23
øh...den nederste linie er linie 10!
Avatar billede eagleeye Praktikant
03. marts 2003 - 19:57 #24
hmmm .. har du rette SQLen så den passer med tabel og autonummer kolonnenavne?

strSQL = "SELECT * FROM tabel WHERE (ID = 0)"
Avatar billede eagleeye Praktikant
03. marts 2003 - 20:05 #25
Er de to kolonner (Title, Tekst) ikke defineret som tekst??
Er de sat til at kunne modtage en nullængde streng?
Avatar billede dj-sejler Praktikant
03. marts 2003 - 20:13 #26
øhh... sig noget mere :)
Avatar billede eagleeye Praktikant
03. marts 2003 - 20:20 #27
Hvad hedder den tabel i databasen du vil gemme title og tekst i?
Avatar billede dj-sejler Praktikant
03. marts 2003 - 20:21 #28
den hedder tabel!
Avatar billede eagleeye Praktikant
03. marts 2003 - 20:29 #29
og du har en kolonne ID som er autonummer?
Avatar billede dj-sejler Praktikant
03. marts 2003 - 20:29 #30
ja... Replikerings-id
Avatar billede eagleeye Praktikant
03. marts 2003 - 20:31 #31
De to kolonne Tekst og Title

Er de sat til at må modtage en 0-længde streng. Hvis man i access trykker på kolonne så skal Tillad Nullængde streng være sat til Ja.
Avatar billede dj-sejler Praktikant
03. marts 2003 - 20:45 #32
ja nu er de...

Men fejlmeling er:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/email/tilfoej.asp, line 10
Avatar billede eagleeye Praktikant
03. marts 2003 - 20:51 #33
Prøv at lave denne sætning om:

strSQL = "SELECT * FROM tabel WHERE (ID = 0)"

Til:
strSQL = "SELECT * FROM tabel"
Avatar billede dj-sejler Praktikant
03. marts 2003 - 21:28 #34
fejlmeling:

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'file.Ext'

/email/tilfoej.asp, line 22
Avatar billede dj-sejler Praktikant
03. marts 2003 - 21:28 #35
linie 22:
file.SaveAsVirtual "/www/jpg/" & id & "." & file.Ext
Avatar billede eagleeye Praktikant
03. marts 2003 - 21:50 #36
hmm så så vi prøve med:
Lav denne:
file.SaveAsVirtual "/www/jpg/" & id & "." & file.Ext
 
om til.

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
file.SaveAsVirtual "/www/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName)
Avatar billede dj-sejler Praktikant
04. marts 2003 - 16:29 #37
Jeg har gjort som du har sagt... men jeg får stadig fejlmelinger :(


Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'file.SaveAsVirtual'

/email/tilfoej.asp, line 23





<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveToMemory    'Save to memory

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tabel"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../log/database.mdb")
rs.Open strSQL, strDSN, 1, 3

strTitel = Upload.Form("Titel")
strTekst = Upload.Form("Tekst")

rs.AddNew
rs("Titel") = strTitel
rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update
id = rs("id")

Set file = Upload.Files("FILE1")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
linie 23 --> file.SaveAsVirtual "/www/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName)
end if
%>
Avatar billede eagleeye Praktikant
04. marts 2003 - 16:42 #38
Når hmm det skulle den da eller kunne, så skriv SaveAs og så med Sever.Mappathh:


file.SaveAs Server.MapPath("/www/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))
Avatar billede dj-sejler Praktikant
04. marts 2003 - 17:07 #39
Hmm endnu en fejl...

Persits.Upload.1 error '800a001a'

The system cannot find the path specified.

/email/tilfoej.asp, line 23
Avatar billede eagleeye Praktikant
04. marts 2003 - 17:09 #40
Så skal det nok være uden /www i pathen:

file.SaveAs Server.MapPath("/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))
Avatar billede dj-sejler Praktikant
04. marts 2003 - 17:26 #41
F............

fejl igen:

Persits.Upload.1 error '800a001a'

Access is denied.

/email/tilfoej.asp, line 23

så det er vel ikke det... www skal vel være med
Avatar billede eagleeye Praktikant
04. marts 2003 - 17:33 #42
Nej, det er vist mere fordi IUSR_xxx / Internet Guest Account ikke har skriverettighed til den folder du vil uploade til. Er det din egen server eller et web-hotel?
Avatar billede dj-sejler Praktikant
04. marts 2003 - 17:34 #43
det er et webhotel...
webglobe
Avatar billede eagleeye Praktikant
04. marts 2003 - 17:35 #44
Ok har du en folder hvor du normalt gemmer databaser?
Så kan vi for test skrive til den da der er skrive rettighed.
Avatar billede dj-sejler Praktikant
04. marts 2003 - 17:37 #45
jep det har jeg :) jeg prøver lige med det samme... (den hedder "Log")
Avatar billede eagleeye Praktikant
04. marts 2003 - 17:39 #46
;) det kan jeg jo også se ud fra koden

Prøv at rette:
file.SaveAs Server.MapPath("/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))

Til:
file.SaveAs Server.MapPath("../../log/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))
Avatar billede dj-sejler Praktikant
04. marts 2003 - 17:43 #47
jop... det virkede...

jeg skrev bare:

file.SaveAs Server.MapPath("../../log/jpg/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))

istedet :)
Avatar billede eagleeye Praktikant
04. marts 2003 - 17:49 #48
Ja eller må du kontakte dit web-hotel og spørge dem om du ikke kan gå lov at uploade biller til folderen "jpg", så "jpg" foldren har skriverettigheder som for den folder du har databasen i.
Avatar billede dj-sejler Praktikant
04. marts 2003 - 19:28 #49
Øh... kan man ikke vise billeder der er gemt med den ID-streng
{B31705EC-AF1A-4399-956B-726F1CE73828}.jpg for eksempel
Avatar billede eagleeye Praktikant
04. marts 2003 - 19:37 #50
Jo det skulle du da gerne kunne..:

<img src="{B31705EC-AF1A-4399-956B-726F1CE73828}.jpg">

Det kan være du skal havde en sti med hvis ASP og billede fil ikke ligger sammmen:

<img src="../../{B31705EC-AF1A-4399-956B-726F1CE73828}.jpg">
Avatar billede dj-sejler Praktikant
04. marts 2003 - 19:59 #51
Det vil ikke lade sig gøre... men har det så noget at gøre med at den ligger i /log/jpg/ og ikke /www/jpg/?
Det har det vel?!?

Du får i hvert fald dine point nu...
Avatar billede eagleeye Praktikant
04. marts 2003 - 20:05 #52
Arh måske det er nok ikke muligt fra HTML delen at få fat i log folderen, så skal filerne ligge i jpg under www og så kan du skriver:

<img src="/jpg/{B31705EC-AF1A-4399-956B-726F1CE73828}.jpg">
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
Kategori
Kurser inden for grundlæggende programmering

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