webForumDet fria alternativet

upload

72 svar · 1 133 visningar · startad av cupy

cupyMedlem sedan apr. 2002299 inlägg
#1

kan man göra med javascript ,
om man laddar upp en bild då bilden får ett nytt namn,
i så fall kan ni visa hur? 1000 Tack
MVH/cupy

solbulleMedlem sedan mars 20015 287 inlägg
#2

Antar att du laddar upp den med asp eller dylikt?
Sök i så fall under asp och du lär finna hyfsat med svar.

cupyMedlem sedan apr. 2002299 inlägg
#3

ja det ska vara asp och jag sökte men de passar inte in i min script och jag kan inte göra den själv så jag tänkte om det finns enklare lösning med jscript

cupyMedlem sedan apr. 2002299 inlägg
#4

SÅ... Finns det lösning på detta?

solbulleMedlem sedan mars 20015 287 inlägg
#5

Visa kod.

cupyMedlem sedan apr. 2002299 inlägg
#6

räcker den? (kanske det våre bäst att flytta tråden till asp då)

<!--#include file="Loader.asp"-->
<%On Error Resume Next
Response.Buffer = True
' load object
Dim load
Set load = new Loader

	' calling initialize method
	load.initialize
	
	' Check if any files were uploaded

	
' File binary data
Dim fileData
	fileData = load.getFileData("file")
' File name
Dim fileName
	fileName = LCase(load.getFileName("file"))
' File path
Dim filePath
	filePath = load.getFilePath("file")
' File path complete
Dim filePathComplete
	filePathComplete = load.getFilePathComplete("file")
' File size
Dim fileSize
	fileSize = load.getFileSize("file")
' File size translated
Dim fileSizeTranslated
	fileSizeTranslated = load.getFileSizeTranslated("file")
' Content Type
Dim contentType
	contentType = load.getContentType("file")
' No. of Form elements
Dim countElements
	countElements = load.Count
	' Value of text input field "datum"
Dim datum
	datum = load.getValue("datum")

' Value of text input field "namn"
Dim namn
	namn = load.getValue("namn")
' Value of text input field "telefon"
Dim telefon
	telefon = load.getValue("telefon")	
	'\*\*\*\*\*\*\*
	' Value of text input field "rubrik"
Dim rubrik
	rubrik = load.getValue("rubrik")

' Value of text input field "epost"
Dim epost
	epost = load.getValue("epost")	
	
Dim kategori
	kategori = load.getValue("kategori")

Dim pathToFile
pathToFile = Server.mapPath("uploaded/") & "\\" & fileName

' Uploading file data
Dim fileUploaded
fileUploaded = load.saveToFile ("file", pathToFile)

' destroying load object
Set load = Nothing

%>

loader.asp

Class Loader
Private dict

	Private Sub Class_Initialize
		Set dict = Server.CreateObject("Scripting.Dictionary")
	End Sub
	
	Private Sub Class_Terminate
		If IsObject(intDict) Then
			intDict.RemoveAll
			Set intDict = Nothing
		End If
		If IsObject(dict) Then
			dict.RemoveAll
			Set dict = Nothing
		End If
	End Sub

	Public Property Get Count
		Count = dict.Count
	End Property

	Public Sub Initialize
		Dim binData
			binData = Request.BinaryRead(Request.TotalBytes)
			getData binData
	End Sub
	
	Public Function getFileData(name)
		If dict.Exists(name) Then
			getFileData = dict(name).Item("Value")
			Else
			getFileData = stringToByte("Not Found")
		End If
	End Function
	
	Public Function getValue(name)
		If dict.Exists(name) Then
			getValue = CStr(dict(name).Item("Value"))
			Else
			getValue = "Not Found"
		End If
	End Function

	
	Public Function getFileName(name)
		If dict.Exists(name) Then
			Dim temp, tempPos
				temp = dict(name).Item("FileName")
				tempPos = 1 + InStrRev(temp, "\\")
				getFileName = Mid(temp, tempPos)
			Else
			getFileName = ""
		End If
	End Function
	
	Public Function getFilePath(name)
		If dict.Exists(name) Then
			Dim temp, tempPos
				temp = dict(name).Item("FileName")
				tempPos = InStrRev(temp, "\\")
				getFilePath = Mid(temp, 1, tempPos)
			Else
			getFilePath = "Not Found"
		End If
	End Function
	
	Public Function getFilePathComplete(name)
		If dict.Exists(name) Then
			getFilePathComplete = dict(name).Item("FileName")
			Else
			getFilePathComplete = "Not Found"
		End If
	End Function
	
	Public Function getFileSize(name)
		If dict.Exists(name) Then
			getFileSize = LenB(dict(name).Item("Value"))
			Else
			getFileSize = "Not Found"
		End If
	End Function

	Public Function getFileSizeTranslated(name)
		If dict.Exists(name) Then
			temp = 1 + LenB(dict(name).Item("Value"))
				If Len(temp) \<= 3 Then
					getFileSizeTranslated = temp & " bytes"
					ElseIf Len(temp) \> 6 Then
					temp = FormatNumber(((temp / 1024) / 1000), 2)
					getFileSizeTranslated = temp & " megabytes"	
					Else
					temp = FormatNumber((temp / 1024), 2)
					getFileSizeTranslated = temp & " kilobytes"
				End If
			Else
			getFileSize = "Not Found"
		End If
	End Function
	
	Public Function getContentType(name)
		If dict.Exists(name) Then
			getContentType = dict(name).Item("ContentType")
			Else
			getContentType = "Not Found"
		End If
	End Function

Private Sub getData(rawData)
	Dim separator 
		separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)

	Dim lenSeparator
		lenSeparator = LenB(separator)

	Dim currentPos
		currentPos = 1
	Dim inStrByte
		inStrByte = 1
	Dim value, mValue
	Dim tempValue
		tempValue = ""

	While inStrByte \> 0
		inStrByte = InStrB(currentPos, rawData, separator)
		mValue = inStrByte - currentPos

		If mValue \> 1 Then
			value = MidB(rawData, currentPos, mValue)

			Dim begPos, endPos, midValue, nValue
			Dim intDict
				Set intDict = Server.CreateObject("Scripting.Dictionary")
	
				begPos = 1 + InStrB(1, value, ChrB(34))
				endPos = InStrB(begPos + 1, value, ChrB(34))
				nValue = endPos

			Dim nameN
				nameN = MidB(value, begPos, endPos - begPos)

			Dim nameValue
				If InStrB(1, value, stringToByte("Content-Type")) \> 1 Then

					begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
					endPos = InStrB(begPos + 1, value, ChrB(34))
					
					midValue = MidB(value, begPos, endPos - begPos)
						intDict.Add "FileName", trim(byteToString(midValue))
							
					begPos = 14 + InStrB(endPos + 1, value, stringToByte("Content-Type:"))
					endPos = InStrB(begPos, value, ChrB(13))
					
					midValue = MidB(value, begPos, endPos - begPos)
						intDict.Add "ContentType", trim(byteToString(midValue))
					
					begPos = endPos + 4
					endPos = LenB(value)
					
					nameValue = MidB(value, begPos, endPos - begPos)
				Else
					nameValue = trim(byteToString(MidB(value, nValue + 5)))
				End If

				intDict.Add "Value", nameValue
				intDict.Add "Name", nameN

				dict.Add byteToString(nameN), intDict
		End If

		currentPos = lenSeparator + inStrByte
	Wend
End Sub

End Class

Private Function stringToByte(toConv)
	Dim tempChar
	 For i = 1 to Len(toConv)
	 	tempChar = Mid(toConv, i, 1)
		stringToByte = stringToByte & chrB(AscB(tempChar))
	 Next
End Function

Private Function byteToString(toConv)
	For i = 1 to LenB(toConv)
		byteToString = byteToString & chr(AscB(MidB(toConv,i,1))) 
	Next
End Function

%>

Jesper TMedlem sedan nov. 20017 144 inlägg
#7
<%
  Dim fso
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  fso.MoveFile "d:\test.txt", "d:\nytest.txt"
%>

Skall du kunna byta filnamnet med!

MVH Jesper

cupyMedlem sedan apr. 2002299 inlägg
#8

Kanske ...men problemet är att det handlar om bilder och olika typer och jag vet inte vart ska jag lägga till även om din lösning skulle fungera
MVH/cupy

Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Skulle eventuellt, kanske kunna funka:

fso.MoveFile filepath & fileName, filepath & date()&"_"&fileName

skall byta tex: bild.gif, till 2002-06-10_bild.gif

cupyMedlem sedan apr. 2002299 inlägg
#10

testade och funkar inte .....fats jag vet inte riktigt vart ska jag lägga in

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Har du med detta?

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")

(Som du måste ha)
....Måste sova. Godnatt :o

Någon annan kanske kan hjälpa annars?!

MVH Jesper

JojoxxMedlem sedan juni 20004 308 inlägg
#12

(Flyttar tråden till ASP-forumet.)

cupyMedlem sedan apr. 2002299 inlägg
#13

Det som händer , vart jag är sätter in den koden i den översta koden då ändrar namnet på mina bilder som jag laddarupp Men den ändrar namnet på de som finns på min hårdisk Alltså efter upload ändras namnet på "original"bilden i min map på den bilden som jag laddatupp , därifrån jag laddat upp. Konstigt

Någon som vet vart ska jag lägga in den eller felet på den?
Tack/cupy

Jesper TMedlem sedan nov. 20017 144 inlägg
#14

fso.MoveFile filePathComplete & fileName, filePathComplete & date()&"_"&fileName

??? :r

cupyMedlem sedan apr. 2002299 inlägg
#15

Med den[fso.MoveFile filePathComplete & fileName, filePathComplete & date()&"_"&fileName] händer inget!

Jesper TMedlem sedan nov. 20017 144 inlägg
#16

Jag lämnar walk over! :stud

MVH Jesper

cupyMedlem sedan apr. 2002299 inlägg
#17

OK ..... Jag skulle behöva lite hjälp här,
någon?

cupyMedlem sedan apr. 2002299 inlägg
#18

Jag vill sätta in den här lille scriptet från (Pellesoft) i min

set rst=con.execute("select max(id) as recordid from tabell")
returnedId = rst("recordid")
rst.close

' hämtar filnamnet på sedvanligt sätt
filename = myRequestFiles(0,1)

' hämtar filextension
extension = right(filename,4)

' bygger det nya filnamnet. Eftersom det exempelvis kan stå 48, så vill vi istället
' att det skall stå 00048 och det kan man göra på följande sätt:
filename = Right("00000" & trim(returnedId), 5)

' bygger ihop det nya filnamnet
newfilename = filename & extension

....Men den funkar inte rakt av, jag behöver er hjälp!

OveRRidEMedlem sedan feb. 200112 078 inlägg
#19

Börja med att byta ut detta

extension = right(filename,4)

mot detta

filename = "filnamnet.jpg"
extension = right(filename,len(filename) - instr(filename,".") +1)

Ifall filen har en ändelse som t.ex. "html" (fyra tecken) kommer inte den gamla funktionen fungera.

cupyMedlem sedan apr. 2002299 inlägg
#20

Nej , Jag får bara 00000 som filnamn och inget ändelse
MVH/cupy

137 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)