webForumDet fria alternativet

Asp Upload - påverka filnamnet

ASP

2 svar · 273 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej alla. Jag använder mig av ASP upload komponenten för att ladda upp lite bilder till ett fotoalbum. Detta fungarar bra. Men nu vill jag ändra koden så att jag kan påverka namnet på filen.

Vill smyga in xxxx**_orginal**.jpg i filnamnet. Hur man gör det vet jag. Men jag vet inte hur man påverkar filnamnet i ASP upload.

<% 'Här sparas filen
varFolderPath = "/fotoalbum/" &varValtAlbum &"/"
response.write "Vald path = <b> " &varFolderPath &"</b>"
filepath = server.mappath(varFolderPath) 
response.write "<hr>Komplett filpath = <b>" &filepath &"</b>"

'Kontrollerar om katalog finns för inloggad anvädare
Set fso = Server.CreateObject("Scripting.FilesystemObject")
	If fso.FolderExists(filepath) Then
	response.write("<hr>Letar efter användarens katalog. Den: <b>FINNS</b><hr>") 
	else
	response.write("<hr>Letar efter användarens katalog. Den: <b>FINNS EJ. Skapar en ny katalog</b> <hr>") 
	end if %>

<% Set Upload = Server.CreateObject("Persits.Upload") 
Upload.ProgressID = Request.QueryString("PID")

' Limit file size to 50000 bytes, throw an exception if file is larger
Upload.SetMaxSize 1000000, True 

' Intercept all exceptions to display user-friendly error
'On Error Resume Next 

' Perform upload
Upload.Save filepath 

' 8 is the number of "File too large" exception
If Err.Number = 8 Then
   Response.Write "<font color=red>Din fil är för stor. FILÖVERFÖRINGEN ÄR AVBRUTEN ! </font>"
Else
   If Err <> 0 Then
      Response.Write "An error occurred: " & Err.Description
   Else
      Response.Write "1) Filen är nu överförd till webservern.<p>"
   End If
End If%>

Går det att förstå vad jag menar ?

Medlem sedan mars 20041 505 inlägg
#2

Jag satt med samma problem förut, har för mig att jag löse det med SaveAs. Här är ett exempel på hur man sparar en fil som någonting annat:

<% 
Set Upload = Server.CreateObject("Persits.Upload.1") 
' ensure a unique name when calling File.SaveAs 
Upload.OverwriteFiles = False 
Count = Upload.SaveToMemory 

If Count = 1 Then ' 1 file uploaded 
    Set File = Upload.Files(1) 

  ' retrieve destination file name from a HIDDEN form item 
    Path = "c:\upload\" & Upload.Form("Filename") 
    ' Side effect: SaveAs sets changes File.Path property to a new value. 
    File.SaveAs Path 
    Response.Write "File was saved as " & File.Path 
Else 
    Response.Write "No files were uploaded." 
End If 
%>

Du ser att Path, dvs det man skickar in i SaveAs, måste innehålla både katalogen där man sparar och det nya filnamnet.

Medlem sedan maj 20012 080 inlägg
#3

Jag löste det med att skriva filen till en tempkatalog och ändra namnet med FSO istället. :)

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)