webForumDet fria alternativet

Döp om bild namnet!

ASP

14 svar · 460 visningar · startad av Ivar

Medlem sedan aug. 2002218 inlägg
Frågan#1

Hej!
Jag har kollat på webforumet men kunde inte hitta någon bra förklaring på Rename av filer.
Jag vill att bilden som man laddar till mappen och databasen ska få ett annat namn går det?
Typ 32434334_1700_453.gif.
Kod:
<!--#include file="upload.asp"-->
<%
on error resume next
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))

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

BuildUploadRequest RequestBin
For Each File In UploadRequest.Items
'Exempel på hur man kan 'plocka ner' andra forumlärelement
'email = UploadRequest.Item("email").Item("Value")
item = UploadRequest.Item("item").Item("Value")
description = UploadRequest.Item("description").Item("Value")
category = UploadRequest.Item("category").Item("Value")
ja = UploadRequest.Item("ja").Item("Value")
price = UploadRequest.Item("price").Item("Value")
phone = UploadRequest.Item("phone").Item("Value")
email = UploadRequest.Item("email").Item("Value")
stad = UploadRequest.Item("stad").Item("Value")

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

'Create FileSytemObject Component
next

If byteCount<=7000 THEN

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

'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)

Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & filename))

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

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath( filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""" & filename & """>"

response.write "<font face=Verdana size=1>Din fil är upladdad utan problem </font>"

set connect = server.createobject("ADODB.connection")

Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set RecSet= Server.CreateObject("ADODB.Recordset")
SQL= "INSERT INTO items (item, description, category,test,price,phone,email,stad, filename,password) VALUES('" & item & "', '"& description & "', '" & category &"','"& ja & "', '"&price&"','"&phone&"','"& email &"', '"&stad&"','" & filename & "','"& password & "')"

'Databas.Execute(SQL)
connect.Execute(SQL)
'Response.Write ="SQL"

else

response.write "Du har antingen en fil som inte har filändelse .gif eller så är den större än 70 kb.<br>Var gud och prova igen.</br>"
end if

%>

<meta http-equiv="Refresh" content="7; URL=default.asp">

Medlem sedan apr. 20022 743 inlägg
#2

Byt --> Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & filename))

Till --> Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/MITT_FIL_NAMN.gif"))

Medlem sedan aug. 2002218 inlägg
#3

Ok... men jag vill att varje gång man laddar en bil då ska bilden få ett nytt namn (unik)?

Medlem sedan mars 20001 266 inlägg
#4

Kan du inte typ döpa den efter datum och klockslag. Borde ju fungerar kan man tycka
typ "date()+time()"

Andreas

Medlem sedan apr. 20022 743 inlägg
#5

AG skrev:

Kan du inte typ döpa den efter datum och klockslag. Borde ju fungerar kan man tycka
typ "date()+time()"

Andreas

då är det kasnke enklare att bara använda Now() ;)

Medlem sedan aug. 2002218 inlägg
#6

Menar ni såhär:
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & Date()))&""

Medlem sedan nov. 20017 144 inlägg
#7

Nej, så här:

 Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & now()))&""

;)

Medlem sedan juni 200032 967 inlägg
#8

Nej, så här:

Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & now()))

;)

Att lägga till en tom sträng ( & "") på slutet av någonting är oftast bara helt onödigt. Men ibland kan det skapa problem. Här skulle det kunna bli problem, eftersom det inte är en sträng som tom sträng skulle bli lagd till.

Mvh,

Medlem sedan aug. 2002218 inlägg
#9

Hej Jesper T funkar ej om jag använder den här koden

Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & now()))
Men om jag använder Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & Date())) då får jag dagens datum (2002-09-08) och filen är ej .gif ?

Medlem sedan nov. 20017 144 inlägg
#10

var det en fråga eller ett påstående?

Medlem sedan nov. 20017 144 inlägg
#11
 Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & Date()&".gif"))

Är det inte bara giffar så måste du ta ut filändelsen innan du byter namn på filen.

 
andelse=right(filename),4)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/" & Date() & andelse))
Medlem sedan aug. 2002218 inlägg
#12

Visst det funkar så men laddar man ny bild så skrivs den över.
Kan man inte få sekunderna med eller ID nummer i så fall hur?

Medlem sedan nov. 20017 144 inlägg
#13

med now() istället för date()

Medlem sedan aug. 2002218 inlägg
#14

Hej!
Jag löste problemen med den här koden:
'Create FileSytemObject Component
next

If contentType="image/gif" THEN

If byteCount<=7000 THEN
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Dim MyVar
MyVar = Minute(Now)
Dim MySec
MySec = Second(Now)
' MySec contains the number representing the current second.
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
'Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/ivica1/bilder/"& Date()& MyVar&MySec&".gif"))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
response.write "<b>Filens sökväg:</b> " & Server.mappath( filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""" & filename & """>"
response.write "<br><font face=Verdana size=1>Din fil är upladdad utan problem och kommer att granskas av Europa Annons AB.</br></font>"

set connect = server.createobject("ADODB.connection")

Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set RecSet= Server.CreateObject("ADODB.Recordset")
SQL= "INSERT INTO items (item, description, category,test,price,phone,email,stad, filename,password) VALUES('" & item & "', '"& description & "', '" & category &"','"& ja & "', '"&price&"','"&phone&"','"& email &"', '"&stad&"','" & Date()& MyVar&MySec&".gif"& "','"& password & "')"

'Databas.Execute(SQL)
connect.Execute(SQL)
'Response.Write ="SQL"

else

response.write "Du har antingen en fil som inte har filändelse .gif eller så är den större än 70 kb.<br>"
end if

end if

%>

<meta http-equiv="Refresh" content="7; URL=default.asp">

Medlem sedan jan. 20022 440 inlägg
#15

jadu det var lite onödigt mycket kod för så lite :e Skulle starkt rekommendera att du lär dig använda now() ;)

273 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)