webForumDet fria alternativet

Upload till användare

ASP

16 svar · 206 visningar · startad av JonasT

Medlem sedan dec. 2001148 inlägg
Frågan#1

Hej!
Jag undrar om ngn kan hjälpa mig med ett upload script.
Jag har ett upload script som laddar upp filer till en speciel mapp.
Jag undrar hur man kan göra så att den laddar upp bilden till medlemms databasen.Alltså till den medlemmen som är inloggad...så att bilden kommer direkt upp till hans/hennes info
Skulle vara jätte tacksam för svar.

Medlem sedan feb. 2001390 inlägg
#2

Såvitt jag vet kan du inte ladda upp bilder till databaser, men du kan alltid ladda upp adressen till medlemmes bild.

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan juni 20019 024 inlägg
#3

Jo, det går med SQL Server (och eventuellt Access om jag inte minns fel). Men i det här fallet rör det sig om URL:en.
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 25 dec 2001]

Medlem sedan dec. 2001148 inlägg
#4

Ja, url:en.
Hur gör jag för att spara url.en til bilden i användardatabasen?
Och till den användaren som är online

Medlem sedan dec. 2001148 inlägg
#5

ingen som kan förklara för mig hur man sparar en url i en användar databas till den inloggade användaren?
tacksam för svar

Medlem sedan okt. 2001387 inlägg
#6

Jag tycker det är lättare att bilden som användaren laddar upp döps om till användarens ID i databasen..

Då behöver du ju bara länka bilden på användarens information som "bilder/<%=RecSet("ID")%>.jpg"

Medlem sedan dec. 2001148 inlägg
#7

Ja,det skulle bli perfekt....om någon skulle kunna lösa det med ltie kod skulle jag vara jätte tacksam

Medlem sedan okt. 2001387 inlägg
#8

vilken kod är det du vill ha ? till själva uploadandet eller ALLT jag har :)

Medlem sedan dec. 2001148 inlägg
#9

Jag har ett upload script. Men det kanske blir svårt att fixa ihop din kod med det, så jag vore jätte tacksam om du kunde skriva hela koden till allt:)

Medlem sedan okt. 2001387 inlägg
#10

Okaj, här kommer det jag använder:

Kod för att visa bilden:

	\<%
	Dim Bild
	Set fs = Server.CreateObject("Scripting.FileSystemObject")
	If fs.FileExists(Server.MapPath("\\klass\\pic\\users\\") & "\\" & Session("userID") & ".jpg") = True Then
		Bild = "/klass/pic/users/" & Session("userID") & ".jpg"
	Else
		Bild = "\\klass\\pic\\user_default.gif"
	End If
	%\>
	\<IMG SRC="\<%=Bild%\>" HEIGHT="277" WIDTH="199" STYLE="border: 2px solid #8890A8; margin: 10px;"\>

Kod för att välja fil som ska laddas upp:

<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="uploadaction.asp" STYLE="position: absolute; top: 1075px; left: 332px; z-index: 11;">

	\<P\>
	\<SPAN CLASS="blur"\>Bildens Plats:\</SPAN\>\<BR\>
	\<INPUT TYPE="file" SIZE="20" NAME="FILE1" CLASS="input"\>
	\<P\>

	\<input type="submit" value="Uploada" CLASS="input" STYLE="font-weight: 900;"\>\<BR\>

\</FORM\>

uploadaction.asp

<%@ Language=VBScript %>

<!-- #include file="upload.asp" -->
<%
' On Error Resume Next
' Create the FileUploader
Dim Uploader, File
Set Uploader = New FileUploader

' Start upload
Uploader.Upload()
If not Uploader.Files.Count = 0 Then
For Each File In Uploader.Files.Items
' Save the file
strFileName = File.FileName

	strFileExtension = Right(strFileName,Len(strFileName)-InStrRev(strFileName, "."))

	File.FileName = Session("userID") & ".jpg"

	Call File.SaveToDisk(server.mappath("/") &"\\klass\\pic\\users\\") 

	If not lCase(strFileExtension) = "jpg" OR File.FileSize \> 20480 Then

		Set fso = Server.CreateObject("Scripting.FileSystemObject")
		fso.DeleteFile(server.mappath("/") &"\\klass\\pic\\users\\" & File.FileName)
		%\>\<!-- #include virtual="/klass/layout1.asp" --\>\<%
		Response.Write "Den uppladdade filen var avfel typ eller för stor. Den är nu raderad. Försök igen!\<P\>\<A HREF=""javascript:history.go(-1);""\>\<B\>\<\<\< Tillbaka\</B\>\</A\>"
		%\>\<!-- #include virtual="/klass/layout2.asp" --\>\<%
	Else
		Response.Redirect "profil.asp?pyssel=info#fragor"
	End If
Next

End If

%>

upload.asp

<%
Class FileUploader
Public Files
Private mcolFormElem

Private Sub Class_Initialize()
	Set Files = Server.CreateObject("Scripting.Dictionary")
	Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub

Private Sub Class_Terminate()
	If IsObject(Files) Then
		Files.RemoveAll()
		Set Files = Nothing
	End If
	If IsObject(mcolFormElem) Then
		mcolFormElem.RemoveAll()
		Set mcolFormElem = Nothing
	End If
End Sub

Public Property Get Form(sIndex)
	Form = ""
	If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
End Property

Public Default Sub Upload()
	Dim biData, sInputName
	Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
	Dim nPosFile, nPosBound

	biData = Request.BinaryRead(Request.TotalBytes)
	nPosBegin = 1
	nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
	
	If (nPosEnd-nPosBegin) \<= 0 Then Exit Sub
	 
	vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
	nDataBoundPos = InstrB(1, biData, vDataBounds)
	
	Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
		
		nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
		nPos = InstrB(nPos, biData, CByteString("name="))
		nPosBegin = nPos + 6
		nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
		sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
		nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
		nPosBound = InstrB(nPosEnd, biData, vDataBounds)
		
		If nPosFile \<\> 0 And  nPosFile \< nPosBound Then
			Dim oUploadFile, sFileName
			Set oUploadFile = New UploadedFile
			
			nPosBegin = nPosFile + 10
			nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
			sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
			oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\\"))

			nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
			nPosBegin = nPos + 14
			nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
			
			oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
			
			nPosBegin = nPosEnd+4
			nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
			oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
			
			If oUploadFile.FileSize \> 0 Then Files.Add LCase(sInputName), oUploadFile
		Else
			nPos = InstrB(nPos, biData, CByteString(Chr(13)))
			nPosBegin = nPos + 4
			nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
			If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
		End If

		nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
	Loop
End Sub

'String to byte string conversion
Private Function CByteString(sString)
	Dim nIndex
	For nIndex = 1 to Len(sString)
	   CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
	Next
End Function

'Byte string to string conversion
Private Function CWideString(bsString)
	Dim nIndex
	CWideString =""
	For nIndex = 1 to LenB(bsString)
	   CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 
	Next
End Function

End Class

Class UploadedFile
Public ContentType
Public FileName
Public FileData

Public Property Get FileSize()
	FileSize = LenB(FileData)
End Property

Public Sub SaveToDisk(sPath)
	Dim oFS, oFile
	Dim nIndex

	If sPath = "" Or FileName = "" Then Exit Sub
	If Mid(sPath, Len(sPath)) \<\> "\\" Then sPath = sPath & "\\"

	Set oFS = Server.CreateObject("Scripting.FileSystemObject")
	If Not oFS.FolderExists(sPath) Then Exit Sub
	
	Set oFile = oFS.CreateTextFile(sPath & FileName, True)
	
	For nIndex = 1 to LenB(FileData)
	    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
	Next

	oFile.Close
End Sub

End Class
%>

Hoppas du fixar det :)

Medlem sedan dec. 2001148 inlägg
#11

ojojoj vad rörigt det blev....har du icq eller msn...så kan jag fråga dig om jag stötr på ngt fel..lite onödigt att ta det här i forumet.

[Redigerat av JonasT den 26 dec 2001]

Medlem sedan okt. 2001387 inlägg
#12

de två första kodstyckena klistrar du in på din sida. Gå igenom koden noggrant så förstår du förhoppningsvis vad den gör.

3:e kodstycket heter som jag skrivit uploadaction.asp och det fjärde (långa) heter upload.asp

Medlem sedan dec. 2001148 inlägg
#13

Har du icq eller msn??som jag kn kontakta dig genom?

[Redigerat av JonasT den 26 dec 2001]

Medlem sedan okt. 2001387 inlägg
#14

Grr..
och vanligtvis brukar det vara jag som ställer frågorna här :)
ICQ: 6195444

Medlem sedan sep. 200115 inlägg
#15

Detta script låter lysande, det jag ska göra är att göra om ett annonssystem så du kan lägga till bild med annonsen, undrar om man kan använda ditt script i samband med annonsen.

Eller om du Nil har någon annonsforum färdigt med bild till annonsen

Medlem sedan dec. 20015 inlägg
#16

har du icq eller msn...så kan jag fråga dig om jag stötr på ngt fel..lite onödigt att ta det här i forumet.

Hmm, tycker inte jag, vore skoj och se hursomhelst. Vitsen med ett forum som det här måste väl vara att hålla diskussionerna allmänna eller? :)

[Redigerat av steffen den 04 jan 2002]

Medlem sedan aug. 20011 087 inlägg
#17

Jag letar själv efter ett script som skall göra detta, alltså ladda upp bild och döpa om den till användarens ID.. Utan resultat, och detta fick jag alldrig änns att funka riktigt. =(

------------------
*brölar ljudligt*

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)