webForumDet fria alternativet

Ändra deta uploadscript

0 svar · 92 visningar · startad av M.Cheraghi

M.CheraghiMedlem sedan juli 20015 107 inlägg
#1

Tjenare..

jag ladade ner detta script från Gruvsjo fungerar väldigt bra men eftersom detta script bara tillåter att man laddar upp 1 bild i taget och jag vill att man ska kunna ladda upp 10 bilder i taget, men jag har inte riktigt hittat ett smart sätt att lösa detta på =/
nån som har några bra tips?

<%@EnableSessionState=True%>

<%
'###################################################
'-------------MAPPEN DU LADDAR UPP FILERNA TILL----------------------
'###################################################

Mappen	= Server.MapPath("pics")

Set MappKoll	= Server.CreateObject("Scripting.FileSystemObject")
Set Mapp	= MappKoll.getFolder(Mappen)

PS = 5
       
   If Mapp.Files.Count Mod PS Then 
      Sidor = Mapp.Files.Count \ PS + 1 
   Else 
      Sidor = Mapp.Files.Count \ PS 
   End If
   Sida = Request.QueryString("sida")
   If Sida = "" Then 
       Sida = 1 
   End If  
    
   Start = (Sida - 1) * PS
   Slut = Start + PS

  If Mapp.Files.Count = 0 Then%>
       <tr> 
           <td>Inga bilder!</td> 
       </tr> 
   <%Else

   For Each File In Mapp.Files 

       bild = InStrRev(LCase(File.Name), "." ) 
       If bild < 1 Then bild = "" Else bild = Mid(LCase(File.Name),bild+1)

       If X < Start Then 
       ElseIf X < Slut Then%>
           <tr> 
              <td><a href="<%=Mappen%>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb</td>
           </tr> 
       <%Else 
          Exit For 
       End If 
       X = X + 1 
   Next
   End If
If Sidor > 1 Then%>

<tr>
  <td><hr></td>
</tr>
<tr>
  <td>
<%For i = 1 To Sidor
    If  i = CInt(Sida) Then
        Response.Write "<b>" & i & "</b>"
    Else
        Response.Write " <a href=lista.asp?sida=" & i & ">" & i & "</a> "
    End If
Next%>
</td>
</tr>
    <tr>
      <td><hr></td>
    </tr>
<%End If%>
  <tr>
    <td><b>Välj fil:</b> <input type="file" name="upload" size="35"></td>
  </tr>
    <tr>
      <td><hr></td>
    </tr>
    <tr>
      <td><input type="submit" value="Ladda upp"></td>
    </tr>
   <%If Session("mess") <> "" Then%>
   <tr>
      <td><hr></td>
   </tr>
   <tr>
      <td align="center"><b>
        <%Response.Write Session("mess")
         Session("mess") = ""%></b></td>
   </tr>
   <%End If%>
</form> 
</table>

</body>
</html>

<%If Request.QueryString("do") = "upload" Then

Response.Buffer=True
Response.Expires=0

	Set Upload    = Hamta_filer()
	files	= Upload("upload").Item("content")

        If MappKoll.FileExists(Mappen & "\" & extract_filename(Upload("upload").Item("filename"))) Then
              Session("mess") = "En fil med det namnet finns redan!"
              Response.Redirect "lista.asp"
        Else
               Set File	= MappKoll.CreateTextFile(Mappen & "\" & extract_filename(Upload("upload").Item("filename")))
        End If                        
	For i = 1 to LenB(files)
	      File.Write chr(AscB(MidB(files, i, 1)))
	Next
        Response.Redirect "lista.asp"
	File.Close: Set File	= Nothing

Function Hamta_filer()
		Set filer	= Server.CreateObject("Scripting.Dictionary")
		Binaries	= Request.BinaryRead(Request.TotalBytes)
		start		= 1
		slut		= InstrB(start, Binaries, hamta_strang_size(chr(13)))
		boundary			= MidB(Binaries, start, (slut - start))
		b_position		= InstrB(1, Binaries, boundary)
                
		Do Until (b_position = InstrB(Binaries, boundary & hamta_strang_size("--")))
			If Not(Response.IsClientConnected) Then Response.End

			start	= (InstrB(InstrB(b_position, Binaries, hamta_strang_size("Content-Disposition")), Binaries, hamta_strang_size("name=")) + 6)
			slut	= InstrB(start, Binaries, hamta_strang_size(chr(34)))

			name			= hamta_strang(MidB(Binaries, start, (slut - start)))
			pos_file		= InstrB(b_position, Binaries, hamta_strang_size("filename="))

			If  ((pos_file <> 0) AND (pos_file < InstrB(slut, Binaries, boundary))) Then
				filer.Add name, Server.CreateObject("Scripting.Dictionary")

				start	= (pos_file + 10)
				slut	= InstrB(start, Binaries, hamta_strang_size(chr(34)))
				filer.item(name).Add "filename", hamta_strang(MidB(Binaries, start, (slut - start)))

				start	= (InstrB(slut, Binaries, hamta_strang_size("Content-Type:")) + 14)
				slut	= InstrB(start, Binaries, hamta_strang_size(chr(13)))
				filer.item(name).Add "content-type", hamta_strang(MidB(Binaries, start, (slut - start)))

				start	= (slut + 4)
				slut	= InstrB(start, Binaries, boundary) - 2
				filer.item(name).Add "size", ((slut - start))
				filer.item(name).Add "content", MidB(Binaries, start, (slut - start))
			End If
			b_position	= InstrB(b_position + LenB(boundary), Binaries, boundary)
		Loop

		Set Hamta_filer = filer
	End Function

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

	Function hamta_strang(str)
		For cnt = 1 to LenB(str)
			hamta_strang	= hamta_strang & 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
End If%>

det där ser alldeles för avancerat ut för mej =) men om nån har en bra lösning att komma med så vore det kanon!

MVH

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