Avatar billede bjoern_bertelsen Nybegynder
23. oktober 2005 - 16:32 Der er 16 kommentarer og
1 løsning

aspsmartupload - upload af fil + kommentar

Hejsa, jeg har web hos cliche som bruger aspsmartupload. Da mine evner ikke magter at kode upload selv, spørger jeg pænt om nogle her kan strikke noget simpelt sammen til mig.

Jeg har brug for en side der skal uploade én fil, samt tilknytte en kommentar til filen (fra textarea).

Filen skal gemmes fysisk, og stien skal gemmes som tekst/link i en database så jeg kunne fiske det ud i en variabel.
Kommentaren skal også lagres databasen sammen med stien til filen, så jeg kan fiske kommentaren ud i en variabel.

Dette skal jeg gøre, så jeg kan lave en side hvor brugere kan uploade ting og sager. Bagefter kan man på en anden side se et link til filen, og en beskrivelse af filens indhold.

Samtidig ved upload skal der i databasen lagres en dato for upload, sammen med filstørrelse og et "ID".

jeg ved virkelig ikke hvad denne mængde kodning indebærer, så point kan hæves hvis det er.
Avatar billede bjoern_bertelsen Nybegynder
02. november 2005 - 17:06 #2
nu har jeg rodet med det fis, og det kan jeg sgu ikke få til at virke. For hver fejl jeg løser, opstår blot en ny.

Den giver ikke en, en database tabel man kan bruge. Jeg har lidt svært ved at se hvordan jeg skal designe den. Kolonnen der skal hede "FILE" hvilken type data skal jeg sætte den til at være i acces? Jeg kan samtidig ikke overskue hvad der ellers skal med af kolonner.
Avatar billede keysersoze Ekspert
02. november 2005 - 18:24 #3
der er ingen der sige at kolonnen SKAL hedde file - det kan du jo helt selv bestemme.

til det du har beskrevet skal tabellen nok se ca sådan ud;

id (autonummerering)
filename (tekst)
filesize (tal)
comment (notat)
submitdate (dato)

filen gemmer du så et vilkårligt sted på webhotellet - filens navn for du sådan; file.FileName og filens størrelse sådan; file.Size
Avatar billede bjoern_bertelsen Nybegynder
03. november 2005 - 11:08 #4
jo, men hvor gemmer den filen? Hvordan definerer jeg hvor den skal gemme filen, og kan man sætte den automatisk til at ændre filnavnet når den uploader?

Fx. hvis jeg er logget ind med bruger Bjørn, og skal uploade et billede under katagorien Bil (valgt fx. fra dropdownbox) - kan man så få filen navngivet som bjørnbil.jpg?

Jeg har endnu ikke fået aspsmartupload til at virke, så jeg har sendt en fil up på min server, som jeg har kunnet finde igen.
Avatar billede bjoern_bertelsen Nybegynder
03. november 2005 - 11:11 #5
Jeg vil ikke gemme filename i databasen, men derimod filstien. dvs. stien til mappen jeg gemmer i + filename.
Avatar billede keysersoze Ekspert
03. november 2005 - 11:23 #6
Du bestemmer jo selv hvor du vil lægge filen - dog kan nogle webhoteller have begrænsninger på en enkelt mappe eller lignende. filen kan du gemme med mySmartUpload.Save("/aspSmartUpload/Upload") helt som skrevet i flere af deres eksempler. Vil du gemme den med et selvvalgt navn kan du - helt som også skrevet i deres eksempler - bruge file.SaveAs("c:\temp\" & file.FileName)

det vil være en dårlig idé at gemme filstien i databasen - tænkt på den dag du vil ændre strukturen på dit webhotel og filstien dermed ændres. derfor gem kun filnavnet og programmér dig ellers frem til filstien i den kode der skal vise billedet.
Avatar billede bjoern_bertelsen Nybegynder
08. november 2005 - 12:56 #7
Jeg får fejlmeddelelse hvis jeg forsøger mig begge dele. Hvis jeg poster hele min kode, når jeg får fri, kan du så ikke lige vise hvor det er jeg skal indsætte møget!?
Avatar billede bjoern_bertelsen Nybegynder
08. november 2005 - 18:15 #8
"Unable to save file (Error 1120)" og der henvises til linje 25 som er som følger:
mySmartUpload.Save("/Upload")

hele koden er som følger:

<HTML>
<BODY BGCOLOR="white">

<H1>aspSmartUpload : Sample 4</H1>
<HR>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim strSQL
  Dim oRs
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload
  mySmartUpload.Save("/Upload")

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("sjovogspas.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'  Open a recordset
'  ****************
  strSQL = "SELECT dato,kommentar,filnavn,filstr,filsti FROM sjovogspas"

  Set oRs = Server.CreateObject("ADODB.recordset")
  Set oRs.ActiveConnection = oConn
  oRs.Source = strSQL
  oRs.LockType = 3
  oRs.Open

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
        oRs.AddNew
        oRs("filnavn") = file.FileName
        oRs("filstr") = file.Size
        oRs("kommentar") = "Dette er en simuleret kommentar"
        oRs("filsti") = file.FileName
        oRs("dato") = now
        oRs.Update
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
</BODY>
</HTML>

fjerner jeg linje 25, eksekveres filen korrekt, og databasen som ligger på serveren, bliver pænt fyldt ud med de nye data. Jeg har ikke kunnet lure hvordan jeg indsætter "filsti" i databasen, så den står p.t bare til filnavnet også. Men det kommer jo efter, at jeg har fundet ud af hvordan jeg reelt får uploadet filen til serveren. Den gemmer sig ingen steder.
Avatar billede bjoern_bertelsen Nybegynder
08. november 2005 - 18:18 #9
det at den tilføjer noget til databasen, betyder vel også at "mySmartUpload.Files" indeholder en fil, men hvor er den?

ps. jeg har istedet for mySmartUpload.Save("/Upload") også forsøgt mig med variant af dit forslag file.SaveAs("c:\temp\" & file.FileName) - det giver samme fejlbesked.
Avatar billede keysersoze Ekspert
08. november 2005 - 18:22 #10
Unable to save file (Error 1120) - skyldes formentlig at du enten forsøger at lægge filen et sted der ikke findes eller at du ikke har skriverettigheder i den mappe.

som sagt vil jeg mene det er en dårlig idé at lægge filsti i databasen i stedet for bare navnet på filen - men vil du endelig gøre det kan du gøre det sådan;

oRs("filsti") = "/sti/til/fil" & file.FileName
Avatar billede bjoern_bertelsen Nybegynder
08. november 2005 - 22:06 #11
Ok, så giver det mening. Det må så angiveligt være min webhost (cliche) som så skal sætte skriverettigheder på den pågældende mappe? (jeg spørger dig, bare lige for at være sikker, så jeg ikke mailer dem og lyder dum).

og ja, det er nok en god idé at gøre som du skriver, med blot at gemme filnavnet, og når jeg så skal linke henter jeg filnavnet fra databasen, med stien foran.
Avatar billede bjoern_bertelsen Nybegynder
08. november 2005 - 22:20 #12
iflg. CHMOD når jeg logger på via et ftp-program har "owner" skriverettigheder i alle mapper, mens "user" og "public" blot har read og execute rettigheder.

"owner" det er måske ikke mig?

Cliche har disablet, at jeg kan ændre på disse indstillinger via CHMOD, så nu afventer jeg svar fra cliche.
Avatar billede keysersoze Ekspert
12. november 2005 - 10:41 #13
jeg glæder mig til at høre et svar :)
Avatar billede bjoern_bertelsen Nybegynder
12. november 2005 - 15:13 #14
hej keyzersoze jeg fik svar fra cliche, om at jeg burde have skriverettigheder over det hele, så har rodet lidt videre, og har fundet løsningen. Jeg var bare lidt dum mht. stiangivelsen, så nu er alt i den skønneste orden. Hvis du smider svar, så får du point!
Avatar billede keysersoze Ekspert
12. november 2005 - 15:30 #15
svar :)
Avatar billede bjoern_bertelsen Nybegynder
13. november 2005 - 14:48 #16
hehe nej det var en kommentar :D
Avatar billede keysersoze Ekspert
13. november 2005 - 14:56 #17
doh!
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