webForumDet fria alternativet

Kontroll av filnamn vid upload av bilder

ASP

4 svar · 414 visningar · startad av zino

Medlem sedan jan. 200247 inlägg
Frågan#1

Hej! Har ett script som fungerar, men behöver modifiera det. Scriptet kontrollerar bla om det finns en fil eller inte när användaren laddat upp en bild på hemsidan. Det jag behöver är en modifiering som även kontrollerar namnet på bilden som laddas upp. Jag är nybörjare och vet inte hur jag ska modifiera scriptet.

Här följer det script jag använder för tidigare funktioner:

'--- Declarations
Dim oFileUp
'--- Instantiate the FileUp object
Set oFileUp = Server.CreateObject("SoftArtisans.FileUp")
'--- Assign the same progress ID that we assigned to the progress object
oFileUp.ProgressID = CInt(Request.QueryString("progressid"))
'--- Set the Path property to the location you wish to
'--- temporarily cache the incoming file before saving
'--- Note: This property must be set immediately after
'--- instantiating the FileUp object
oFileUp.Path = Server.MapPath("../../temp")

If IsObject(oFileUp.Form("myFile1")) Then
fileName1 = oFileUp.Form("myFile1").ShortFileName
End If
If IsObject(oFileUp.Form("myFile2")) Then
fileName2 = oFileUp.Form("myFile2").ShortFileName
End If
If IsObject(oFileUp.Form("myFile3")) Then
fileName3 = oFileUp.Form("myFile3").ShortFileName
End If
If IsObject(oFileUp.Form("myFile4")) Then
fileName4 = oFileUp.Form("myFile4").ShortFileName
End If
Fpath = oFileUp.Form("path")
folder = oFileUp.Form("folder")
Select Case folder
Case "none"
pathToFile = Server.mapPath("../../document_library/" & Fpath & "/")
logwhere = "katalogen för stöddokument"
Case "info_page"
pathToFile = Server.mapPath("../../info_page/" & Fpath & "/")
logwhere = "nödhemsidan"
Case Else
pathToFile = Server.mapPath("../../document_library/" & Fpath & "/" & folder & "/")

Tacksam för hjälp :x

Medlem sedan juni 20019 519 inlägg
#2
Function IsFileOk(filename,AcceptedFiles)
	dim i
	IsFileOk = False
	If IsArray(AcceptedFiles) Then
		For i = 0 to UBound(AcceptedFiles)
			If LCase("" & right(filename, 3)) = LCase(AcceptedFiles(i)) Then
				IsFileOk = True
				Exit Function
			End If
		Next
	End If
End Function

'Exempel på en "ok fil"
If IsFileOk(fileName1,Array("jpg","gif")) Then
	'fileName1 är OK laddar upp den. Now Work your magic to upload the file.
End If
Medlem sedan jan. 200247 inlägg
#3

Tack för hjälpen. Har dock en fråga till om detta. Jag ville behålla så mycket som möjligt av den ursprungliga koden och kom fram till detta som faktiskt fungerar så länge det bara är en fil som ska kontrolleras:

If oFileUp.Form("myFile1").ShortFileName = "logo.gif" Then
End If

If oFileUp.Form("myFile1").ShortFileName = "image.jpg" Then
End If
	
If Not oFileUp.Form("myFile1").ShortFileName = "logo.gif" Then
Response.Write ("Fel")
Response.End
End If

Detta fungerar som sagt, men jag behöver ju få in "image.jpg" i IF NOT sektionen så att alla filer som inte har dessa båda namn inte går igenom. Finns det någon "IF NOT = någonting OR = något annat" eller liknande eller är lösningen något helt annat?

Medlem sedan juni 20019 519 inlägg
#4

1. Du behöver ju inte ha en If fråga på något du inte använder:

If oFileUp.Form("myFile1").ShortFileName = "logo.gif" Then
End If

If oFileUp.Form("myFile1").ShortFileName = "image.jpg" Then
End If

En If fråga med "fler" val:

dim hallon,Pear
hallon = "Bär"
Pear = "Päron"
If Hallon = "Bär" And Pear = "Päron" Then
	'do stuff
End If
If Not Hallon = "Päron Or Not Pear = "Bär" Then
	'Hallon är inte ett äron och Päronet är inte ett bär
End If

Ditt exempel "låser" dig då du måste ha filnamnet logo.gif, image.jpg osv. Vad vill du göra exakt med ditt skript?

Medlem sedan jan. 200247 inlägg
#5

Tack igen och förmodligen gav jag ingen bra förklaring då jag är lite ovan. Men, skriptet ska användas till att om filen heter logo.gif eller image.jpg så ska filen laddas upp. Om den heter något annat ska ett felmeddelande komma.

Hur som helst har jag löst det hela nu :) med följande skript:

If oFileUp.Form("myFile1").ShortFileName = "logo.gif" Then
    'Do nothing and move on to end
Else
    If oFileUp.Form("myFile1").ShortFileName = "image.jpg" Then
        'Do nothing and move on to end
    Else
        Response.Write ("Fel")
        Response.End
    End If
End If

Ibland blir enkla saker svåra. ;) Tack för hjälpen.

voigtann1 skrev:

1. Du behöver ju inte ha en If fråga på något du inte använder:

If oFileUp.Form("myFile1").ShortFileName = "logo.gif" Then
End If

If oFileUp.Form("myFile1").ShortFileName = "image.jpg" Then
End If

En If fråga med "fler" val:

dim hallon,Pear
hallon = "Bär"
Pear = "Päron"
If Hallon = "Bär" And Pear = "Päron" Then
	'do stuff
End If
If Not Hallon = "Päron Or Not Pear = "Bär" Then
	'Hallon är inte ett äron och Päronet är inte ett bär
End If

Ditt exempel "låser" dig då du måste ha filnamnet logo.gif, image.jpg osv. Vad vill du göra exakt med ditt skript?

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