OveRRidEMedlem sedan feb. 200112 078 inlägg Jag har (äntligen?) lagt till ett uploadscript här eftersom jag inte fått ändan ur vagnen att göra det innan. Scriptet är helt komponentlöst, vilket jag tror ganska många har användning av ibland om det inte finns ordentliga komponenter installerade på servern. (Vilket det visserligen oftast finns ;))
Buggar eller problem rapporteras i denna tråd.
Håll till godo! //OveRRidE
sin_adecMedlem sedan apr. 2002272 inlägg Men hur blir det om jag vill bestämma vad filen ska hamna.. vart ska jag ändra...
OveRRidEMedlem sedan feb. 200112 078 inlägg På rad 38 i outputfile.asp:
T.ex:
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/bilder/uppladdat/" & filename))
ToonsterMedlem sedan feb. 20001 590 inlägg Lägg till följande, så är det komplett...
(precis samma script jag har hemma i burken, samma variabelnamn osv, men saknar följande)
Kolla typ av bild, ex:
If contentType="image/pjpeg" THEN
Kontroll av bildstorlek (bild mindre än 250k) och bildtyp, variablerna finns redan, bara att använda..
If contentType="image/pjpeg" THEN
If byteCount<=250000 THEN
Set ScriptObject = Server.CreateObject"Scripting.FileSystemObject")
/T
sin_adecMedlem sedan apr. 2002272 inlägg Men..-
Men när det står MapPath så kan man inte typ använda
c:\mina dokument..
hur gör jag om jag vill använda det..
ToonsterMedlem sedan feb. 20001 590 inlägg Ta bort mappath
Set MyFile = ScriptObject.CreateTextFile("c:\mina dokument\"&filename)
/T
sin_adecMedlem sedan apr. 2002272 inlägg Alltså
jag känner mig så jäkla dum...
Om vi har en medlem som har användarnamnet "David"...
recset("anv")
Set MyFile = ScriptObject.CreateTextFile("c:\mina dokument\"&filename)
hur ska jag få att det hamnar typ på C:\mina dokument\david...
hoppas ni förstår.. och ursäktar mig för min dumhet...
OveRRidEMedlem sedan feb. 200112 078 inlägg Det beror på var du lagrat användarnamnet.
Ligger det i en sessionsvariabel kan du t.ex. ordna det på följande sätt.
session("username") innehåller alltså användarnamnet.
Set MyFile = ScriptObject.CreateTextFile("c:\mina dokument\" & session("username") & "\" & filename)
Detta förutsätter att mappen 'david' skapats, annars:
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(session("username"))) = false then
fso.createfolder(server.mappath(session("username")))
Set MyFile = ScriptObject.CreateTextFile("c:\mina dokument\" & session("username") & "\" & filename)
else
response.write "Mappen finns redan. Skapar ingen fil."
end if
set fso = nothing
sin_adecMedlem sedan apr. 2002272 inlägg Vill..
Jag vill tacka alla för hjälpen...
Hur ska man göra om man samtidigt vill lägga in bilden i en databas?
Tex om användaren Havregryn laddar upp en bild (Session("username")) till sin sida. Hur ska man då få bilden att både hamna i mappen bilder och i databsen members?
Tacksam för svar.
OveRRidEMedlem sedan feb. 200112 078 inlägg Spara bildnamnet i en kolumn i databasen.
Tänk på att två stycken personer kan ladda upp en bild med samma namn, vilket kan skapa problem om du har alla bilder som laddas upp i samma mapp på servern. Därför kan det vara bra med en slags "bildnamns-generator" som ger ett unikt bildnamn på bilden innan den sparas. Exempelvis besökarens sessions-id + tid + slumpmässig siffra + ändelse. (Typ 32434334_1700_453.gif.
Ja jag märkte att det vållade lite problem...
Exakt var skall jag sätta id, tid med mera för att inte få ett syntaxfel?
Så här ser koden ut:
username = Session("username")
Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/tsp/forum/members.mdb")&";pwd=losen"
SQL = "SELECT * FROM members"
set RS = Connection.Execute(SQL)
SQL = "UPDATE members Set bild = '" & filename & "' where username = '" & username & "'"
Connection.Execute(SQL)
response.redirect "/tsp/forum/medlem.asp?username="&session("username")
Som vanligt tacksam för svar.
Jesper TMedlem sedan nov. 20017 144 inlägg Om username är unikt är det smartare att byta namn på bilden till ex. username.gif så slipper du konstigheter
Tror att du kan göra det med fso.movefile gör en sökning!
Hittade:
http://www.webforum.nu/showthread.php?s=&threadid=10861&highlight=movefile
Kanske kan vara ngt?!
Jo då.
Ska försöka och se hur det går.
Tack för hjälpen. :)
OveRRidEMedlem sedan feb. 200112 078 inlägg Jesper T:s lösning funkar ju dock inte så bra om användaren vill ha flera bilder, men så kanske inte var fallet. Annars funkar ju det utmärkt. :)
solbulleMedlem sedan mars 20015 287 inlägg Man kan ju med FSO (med en liten nätt funktion) kolla om det redan finns en bild: username.gif och om det finns döpa den nya till username2.gif osv.
OveRRidEMedlem sedan feb. 200112 078 inlägg Och då måste du hålla på och ta reda på vilket nummer nästa bild skall ha, jämföra och krångla med det. (kanske inte såå svårt, men.. ;))
En enkelt 'algoritm' för att generera ett bildnamn lägger jag min röst på. ;)
solbulleMedlem sedan mars 20015 287 inlägg
(med en liten nätt funktion)
Om du har en funktion som denna:
bild = username (.gif)
om bilden bild finns
bild = bild & 1
annars spara bilden med namnet bild
åsså runt igen tills den hittar ett ledigt nummer.
Fördelen som man kan ha med detta system är att det är enklare om man ska visa en användares bilder, du behöveri nte öppna databasen för att plocka ut alla namn, utan lista bara rakt av.
Väl medveten om att alla system har sin plus o minus. Även givetvis detta. Bara en tanke.
crisse6Medlem sedan dec. 20002 526 inlägg Hur gör man om man vill att varje fil som laddas upp måste vara zip format? och sedan max 20 kb... och få den att skriva ut att om det är mer än 50 kb så får den ej laddas upp. jag fattade inte ovanstående inlägg om det där med strl och format... hur ska koden placeras i koden? ;)