Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    ftp di file di grandi dimensioni

    salva ragazzi, ho un problema che riguarda l'ftp:

    sto facendo una sezione di amministrazione di un sito e sono incappato in qualcosa di insolito.... quando l'amministratore del sito, che non sono io fà l'ftp di un file con dimensioni più grandi di 500kb il sito non me lo mette sul server vi posto il file che uso per fare ciò e vi chiedo c'è qualche possibilità di uploadare file di grandi dimensioni????

    grazie

    codice:
    <%Response.Expires=0
      Response.Buffer = TRUE
      Response.Clear
      byteCount = Request.TotalBytes
      RequestBin = Request.BinaryRead(byteCount)
      Dim UploadRequest
      Set UploadRequest = CreateObject("Scripting.Dictionary")
      BuildUploadRequest  RequestBin
      contentType = UploadRequest.Item("blob").Item("ContentType")
      filepathname = UploadRequest.Item("blob").Item("FileName")
      filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
      value = UploadRequest.Item("blob").Item("Value")
    
      'Create FileSytemObject Component
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
      'Create and Write to a File
      
      path = request("Path")
      Set MyFile = ScriptObject.CreateTextFile(Server.mappath(path) & "/" & filename)
     
      For i = 1 to LenB(value)
    	 MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      MyFile.Close%>
    codice:
    <%
    Sub BuildUploadRequest(RequestBin)	
    	PosBeg = 1
    	PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    	boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    	boundaryPos = InstrB(1,RequestBin,boundary)
    	Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
    		Dim UploadControl
    		Set UploadControl = CreateObject("Scripting.Dictionary")
    		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)
    		If  PosFile<>0 AND (PosFile<PosBound) Then
    			PosBeg = PosFile + 10
    			PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    			FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    			UploadControl.Add "FileName", FileName
    			Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
    			PosBeg = Pos+14
    			PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    			ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    			UploadControl.Add "ContentType",ContentType
    			PosBeg = PosEnd+4
    			PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    			Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    			Else
    			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
    		UploadControl.Add "Value" , Value	
    		UploadRequest.Add name, UploadControl	
    		BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    	Loop
      End Sub
      Function getByteString(StringStr)
    	For i = 1 to Len(StringStr)
    		char = Mid(StringStr,i,1)
    		getByteString = getByteString & chrB(AscB(char))
    	Next
      End Function
      Function getString(StringBin)
    	getString =""
    	For intCount = 1 to LenB(StringBin)
    		getString = getString & chr(AscB(MidB(StringBin,intCount,1))) 
    	Next
      End Function
     %>
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  2. #2
    Utente bannato
    Registrato dal
    Jun 2000
    Messaggi
    160
    Non è un upload ftp, è un upload binario

    codice:
    RequestBin = Request.BinaryRead(byteCount)
    Il problema è relativo al timeout dello script che non può aspettare all'infinito il file...
    Magari è impostato a 60 secondi e, se il file è da mezzo mega e la connessione è lenta, 60 secondi non bastano, e lui interrompe l'esecuzione.

    Prova a raddoppiare il timeout oppure cambia connessione

  3. #3
    è impossibile che sia la connessione... in ditta abbiamo una connessione adsl(512 Kb/s) e la dimensione dei file varia da 53 kb a 4 Mb...

    hai detto che è un upload binario... ne esistono altri??? magari più efficaci!!! dove li posso trovare?
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  4. #4
    Utente bannato
    Registrato dal
    Jun 2000
    Messaggi
    160
    Ora non ricordo e magari sbaglio...ma non mi pare che 500Kb siano oltre al limite del post.

    Comunque, prendi un file da meno di 200Kb e prova a fare l'upload.

    prova anche a mettere lo scripttimeout a 120 secondi

  5. #5
    cosa intendi con "ma non mi pare che 500Kb siano oltre al limite del post"???
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  6. #6
    prova ad usare l'upload di BAOL74...è molto piu efficace di quello che stai usando te

  7. #7
    ho provato un altro upload che è bellissimo, ma mi impiega 261 secondi ad uploadare un file di 275 kb!!! aiuto....

    codice:
    percorso = "/public/documenti/"
    ByteRicevuti = Request.TotalBytes
    
    if ByteRicevuti > 0 then
    	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
    	For i = 1 To lenB(DatiRicevuti)
    		FileBinario = FileBinario & chr(ascB(midB(DatiRicevuti,i,1)))
    	Next
    	FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
    	ArrPezzi = split(FileBinario,FirmaFile)
    	for item = 1 to ubound(ArrPezzi)-1
    		Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
    		Intestazione = left(ArrPezzi(item),Inizio-1)
    		Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
    	    ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)
    
    		if instr(Intestazione,"blob") > 0 then
    		    i = instr(Intestazione,"filename=")
    			j = instr(i + 10,Intestazione,chr(34))
    			NomeUpload = mid(Intestazione,i + 10,j-i-10)
    			i = instrRev(NomeUpload,"\")
    			if i<>0 then
        		    NomeFile = mid(NomeUpload,i + 1)
        		else
        			NomeFile = NomeUpload
        		end if
          		if i<>0 then
    				Set FSO = CreateObject("Scripting.FileSystemObject")
    				Upload1 = True
    				DimensioneFile1 = len(ContenutoFile)
    				EstensioneFile1 = right(ContenutoFile,3)
    				NomeFile1 = NomeFile
        			Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False)
        			textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	   end if
    		end if
    	next
    
    If Upload1 = true then
    	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile1*0.001 & "kb"
    	Response.Write "
    Grazie di aver inviato il tuo file"
    End If
    
    End if
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.