webForumDet fria alternativet

browsa bilder för visning

ASPur ASP

6 svar · 234 visningar · startad av soffan76

Medlem sedan maj 2001684 inlägg
Frågan#1

Hejsan hej!

Jag har ett script som visar en bild vars namn man skriver in i en textbox. Vad jag nu vill göra är att skapa en browse-knapp så man först kan leta upp bilden och slipper skriva in bildnamnet manuellt. Nån som vet? Tacksam för hjälp.
Mvh Sofia

Så här ser mitt skript ut:

<html>
<head><title>Getting Images with DHTML/ASP</title></head>

<script>
function ShowImg() {
  frm.imgarea.src = frm.imgName.value;
}
</script>

<body>

<h2>Getting Images the DHTML way.</h2>
<hr>

<form name=frm id=frm>
Image Name = 
<input type="text" size=40 name="imgName" value="NewWroxLogo.gif">
<input type="button" value="Show" onclick="ShowImg()">
</input>

<hr>
<img id="imgarea" src="vit_ruta.gif" style="visibility:0">
<hr>

</form>

</body>
</html>

------------------
Sofia

[Redigerat av soffan76 den 28 sep 2001]

Medlem sedan mars 20002 836 inlägg
#2

Vart ska man kunna browsa?
På klienten eller servern?

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan maj 2001684 inlägg
#3

På klienten. Jag sitter här och testar på min egen dator, har inte kommit så långt som till servern ännu men längre fram så...
Nu vill jag bara att man ska kunna browsa efter en bild, få upp sökväg och filnamn i textboxen och sen trycka på knappen "show" och så ska bilden visas.

------------------
Sofia

Medlem sedan sep. 2001269 inlägg
#4

<input type=file> :q

------------------
http://www.schondell.webb.se/

Medlem sedan mars 20002 836 inlägg
#5

Ja, om man tar bort enctype i formtaggen så kan man använda Request.Form("FieldName") för att hämta sökvägen till vald fil och sedan lägga in den sökvägen i <IMG> taggen ...

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan mars 20002 836 inlägg
#6

Hello igen.

hittade ju ett litet script som du kan använda.
Det är Phillipe Collignon's upload script. Med hjälp av det så får man fram hela sökvägen till filen som ligger på klienten.
Om du senare vill använda detta för att även ladda upp filer så går det oxå bra.
Det är bara att avkommatera de raderna som skapar och skriver data till en fil på servern.

OK, slutsnackat om det här kommer koden:

<%
Option Explicit

Response.Expires=0
Response.Buffer = TRUE
Response.Clear

Dim byteCount, pathEnd, i, intFile, intF
Dim RequestBin, Value
Dim UploadRequest, ScriptObject, MyFile, objItem
Dim filename, contentType, filepathname

byteCount = Request.TotalBytes

RequestBin = Request.BinaryRead(byteCount)

Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

	'## -- loop this section as many times that you have files --
	contentType = UploadRequest.Item("txt_File" & intFile).Item("ContentType")
	filepathname = UploadRequest.Item("txt_File" & intFile).Item("FileName")
	filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))

	'## -- to save the file to the server uncomment lines below --
	'-------------------------------------------------------------
		'value = UploadRequest.Item("txt_File" & intFile).Item("Value")
	
		'## -- Create FileSytemObject Component
		'Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
		
		'## -- Create and Write to a File --
		'pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
		
		'## -- upload the file to server --
		'Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/upload/"&filename))
			'response.write Server.mappath(filename) & "<BR>"
		
		
			'For i = 1 to LenB(value)
			'	MyFile.Write chr(AscB(MidB(value,i,1)))
			'Next
		
		'MyFile.Close
	
	'## -- stop uncomment lines here --
	'----------------------------------
%>
<HTML>
<HEAD>
<TITLE>Show Image</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<IMG src="<% =filepathname%>"><BR>
<small><% =filename%></small>
</BODY>
</HTML>
<%
'## -- String to byte string conversion --
' Author Philippe Collignon
' Email PhCollignon@email.com
'-----------------------------------------------------------
'## -- updated by Patrik Berggren for multiple fileupload --
'-----------------------------------------------------------
Sub BuildUploadRequest(RequestBin)
	Dim PosBeg, PosEnd, boundaryPos, Pos
	Dim boundary, PosFile, PosBound
	Dim Name
	
	'## -- Get the boundary --
	PosBeg = 1
	PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
	boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
	boundaryPos = InstrB(1,RequestBin,boundary)
	
	'## -- Get all data inside the boundaries --
	Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
		'## -- Members variable of objects are put in a dictionary object --
		Dim UploadControl
		Set UploadControl = CreateObject("Scripting.Dictionary")
		
			'## -- Get an object name --
			Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
			Pos = InstrB(Pos,RequestBin,getByteString("name="))
			PosBeg = Pos+6
			PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
			Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
			PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
			PosBound = InstrB(PosEnd,RequestBin,boundary)
			
			'## -- Test if object is of file type --
				If PosFile <> 0 AND (PosFile < PosBound) Then
					'intF = intF + 1

					'## -- Get Filename, content-type and content of file --
					PosBeg = PosFile + 10
					PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
					FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
					
					'## -- Add filename to dictionary object --
					UploadControl.Add "FileName", FileName
						Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
						PosBeg = Pos+14
						PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
						
					'## -- Add content-type to dictionary object --
					ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
					UploadControl.Add "ContentType",ContentType
					
					'## -- Get content of object --
					PosBeg = PosEnd + 4
					PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
					Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
				Else
					'## -- Get content of object
					Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
					PosBeg = Pos+4
					PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
					Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
				End If
				
			'## -- Add content to dictionary object --
			UploadControl.Add "Value" , Value 
			
			'## -- Add dictionary object to main dictionary --
			UploadRequest.Add name, UploadControl 
			
			'## -- Loop to next object --
			BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
		
		Set UploadControl = Nothing
	Loop
	
End Sub

'## -- String to byte string conversion --
Function getByteString(StringStr)
	Dim i
	Dim char
	Dim binString
	
	For i = 1 to Len(StringStr)
		char = Mid(StringStr,i,1)
		binString = binString & chrB(AscB(char))
	Next
	
	getByteString = binString
End Function

'## -- Byte string to string conversion -- 
Function getString(StringBin)
	Dim strString
	Dim intCount
	
	strString =""
	
	For intCount = 1 to LenB(StringBin)
		strString = strString & chr(AscB(MidB(StringBin,intCount,1))) 
	Next
	
	getString = strString
End Function%>

kanske lite mycket overkill för att få fram sökvägen till filen, men, men ... kan inget annat *ler*

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan maj 2001684 inlägg
#7

Tack så mycket!

------------------
Sofia

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