webForumDet fria alternativet

Upload utan komponent!

ASPur ASP

3 svar · 265 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Har laddat ner ett uploadscript utan komponent här och nu undrar jag hur man gör för att inte en ny fil som man laddar upp skriver över en fil som har samma namn. Då ska det typ på tillägger (1) o.s.v eller så man kan döpa om dem till typ 1.gif, 1.jpg, 2.gif, 2.jpg o.s.v. Har gjort om den lite!!

Hoppas nån kan hjälpa mig hur man ska skriva. Om nån har ett förslag så vill jag gärna att ni skriver hur den ser ut och var den ska ligga i koden!!

<%@EnableSessionState=True%>
<%Response.Expires=0	
UPLOAD_PATH	= Server.MapPath("pics")Set Fso	= Server.CreateObject("Scripting.FileSystemObject")
Set Folder	= Fso.getFolder UPLOAD_PATH)	
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then	
Set Upload	= get_upload_files()
fcontent	= Upload("upload").Item("content")		
Set File	= Fso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(Upload("upload").Item("filename")))
For i = 1 to LenB(fcontent)		
File.Write chr(AscB(MidB(fcontent, i, 1)))
Next
File.Close: Set File	= Nothing                
Session("go") = "pics/" & extract_filename(Upload("upload").Item("filename"))	
Response.Redirect "skicka.asp"	End If%>
<!--#Include file="settings.asp"-->
<html>
<head>
<title>»» Bildgalleri ««</title>

<script language="JavaScript">
<!-- function blured()
{for (a in document.links) 
document.links[a].onfocus = 
document.links[a].blur;}
if (document.all){document.onmousedown = blured;}// -->
</script>
<link rel="stylesheet" href="stil.css" type="text/css">
</head>
<body bgcolor="#f0f0f0">
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db%>
<table width="400" align="center" border="0">  
<tr>      
<td colspan="2">
<font size="2">Bildgalleriet:</font>
</td>  
</tr>  
<tr>      
<td height="10" colspan="2"><img src="bilder/dot400.gif"></td>  
</tr>  
<form name="menyn">  
<tr>      
<td width="267"><font size="2">» _  Ladda upp bild</font></td>      
<td align="right" width="133">         <!--#Include file="meny.asp"-->      </td>  
</tr>  
</form>  
<tr>    
<td colspan="2" height="10"><img src="bilder/dot400.gif"></td>
</tr>
</table>
<%Ads.Close
Conn.Close
Set Ads = Nothing
Set Conn = Nothing%>
<table width="400" border="0" align="center"> 
 <tr>  
  <td height="10" class="normal">       Helst ska bilderna vara i dessa storlekar:<br><b>       » 160x120 _ » 320x240 _ » 640x480 _ » 800x600<br>       » 1024x768 _ » 1280x1024<br></b>       Blir snyggast när bilden är i litet format. Spelar ingen roll om det är tvärtom.        <br><b>Tänk på att bilden har ett namn med bokstäver och siffror        för annars kanske inte bilden syns.</b>    </td>  
</tr>  
<tr>    
<td height="10"><img src="bilder/dot400.gif"></td>  
</tr>
<form name="frmUpload" method="post" enctype="multipart/form-data" action="upload.asp">  
<tr>    
<td><input type="file" name="upload"> _ <input type="submit" value="Ladda upp">     </td> 
 </tr>
</form>
 </table>
</body>
</html>
<%	Function get_upload_files()	
	Set upload_object	= 
Server.CreateObject("Scripting.Dictionary")	
	request_binaries	= Request.BinaryRead(Request.TotalBytes)	
	position_start		= 1	
	position_end		= InstrB(position_start, request_binaries,get_byte_string(chr(13)))	
	boundary			= MidB(request_binaries, position_start, (position_end - position_start))	
	boundary_pos		= InstrB(1, request_binaries, boundary)	
	Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))		
	If Not(Response.IsClientConnected) Then 
Response.End		
	position_start	= (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)		
	position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(34)))		
	name			= get_string(MidB(request_binaries, 
position_start, (position_end - position_start)))		
	pos_file		= InstrB(boundary_pos, request_binaries, get_byte_string("filename="))		
	If  ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then			
	upload_object.Add name, Server.CreateObject("Scripting.Dictionary")		
		position_start	= (pos_file + 10)			
	position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(34)))		
		upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))	
			position_start	= (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)		
		position_end	= InstrB(position_start, request_binaries, get_byte_string(chr(13)))		
		upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))	
			position_start	= (position_end + 4)		
		position_end	= InstrB(position_start, request_binaries, boundary) - 2			
	upload_object.item(name).Add "size", ((position_end - position_start))			
	upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))	
		End If		
	boundary_pos	= InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)	
	Loop		
Set get_upload_files = upload_object
	End Function	

Function get_byte_string(str)	
	For cnt = 1 to Len(str)		
	get_byte_string	= get_byte_string & chrB(AscB(Mid(str, cnt, 1)))		
Next	
End Function	

Function get_string(str)	
	For cnt = 1 to LenB(str)	
		get_string	= get_string & chr(AscB(MidB(str, cnt, 1))) 		
Next	
End Function	

Function extract_filename(filename)	
	extract_filename	= Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))	
End Function%>
AsaMedlem sedan dec. 20011 860 inlägg
#2

Blev ju fel ju!! Provar igen!!

lolukokasosMedlem sedan mars 2001196 inlägg
#3

Härlig kod... nånstans på rad tre tror jag ;)

Om ingen gjort det, Välkommen till WEBFORUM!!!

Nä allvarligt, gör en räknare som konkatera på filnamnet ifall den inte har nån siffra i sig. Annars lägg på ett på befintligt siffra.

[Redigerat av lolukokasos den 19 dec 2001]

TobbsterMedlem sedan mars 2001309 inlägg
#4

Eller varför inte Använda FSO(FilesystemObjekt) för att ta reda på om det finns en fil som heter så innan !!!!!....

------------------
Är man medlem på WF så behöver man inga vänner !

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