Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222

    script per upload file non funziona

    ciao,
    sto provando a caricare un file sul server (non son molto pratico) e ho copiato uno script dal sito. Ne ho eliminate alcune parti perchè non ho bisogno di info extra, mi occorre solo caricare un file, ma non funzia (non ricevo messaggi di errore, pagina bianca e file non presente sul server).
    Mi spiegate perchè e come rendere funzionante questo script?
    grazie
    codice:
     <%
    'Questa variabile setta il percorso di dove effettuare l'upolad
    'la cartella non puo non esistere lo script non la crea ! ! !
    
    percorso = "cartellaFiglia"
    
    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)
    
    		' Qui recupero il file da uploadare (se presente) e lo scrivo
    		' sul server
    		if instr(Intestazione,"file1") > 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
    %>
    Alcni dubbi che ho riguardano il percorso. io mi trovo nella cartella madre e il file deve essere scritto nella cartellaFiglia diretta. Un altro dubbio è circa i permessi, devo forse utilizzare una cartella che già li abbia? quale? sono su aruba.
    Non posso darglieli io i permessi?
    grazie
    Si fanno sempre nuove scoperte

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Su Abruba, su Hosting Windows, non puoi settare i permessi di file e cartelle.

    L'upload lo devi eseguire nella cartella public (che ha permessi di scrittura) e derivate (che li ereditano)

  3. #3
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    ciao vincent,
    mhhh... ho fatto ma non funzia. lo script dici che va bene? (cartella a parte ovviamente)
    posso lasciare i file con la form e il file che processa dove voglio vero? devo solo dire al file che processa dove deve scrivere....
    io ho messo /public, avendo il file che processa all'interno di una cartella che sta nella cartella madre....
    thank's
    Si fanno sempre nuove scoperte

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Ricordo di aver visto questo script... ma mi sembra di non averlo provato...
    controlla bene i percorsi.

    Prima fai prove con tutti i file dentro alla public,
    se funge allora prova a spostare il file che ti interessano cambiando i percorsi.

    Con alcuni script è difficile determinare i percorsi se diversi da quello dei file in questione.

  5. #5
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    nulla, ho persino ripristinato lo script, ma mi da solo un messsaggio che oltrettutto non comprendo (Il valore immesso nella testo1 è ), ma sembra funzionare! però il file non viene caricato. Non c'è un modo per farsi dire eventuali errori.
    al momento lo script è questo:
    codice:
    <%
    
    percorso = "/"
    
    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,"file1") > 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
    
    Response.Write "Il valore immesso nella testo1 è " & testo1 & "
    "
    
    
    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
    %>
    grazie
    Si fanno sempre nuove scoperte

  6. #6
    prova con:
    percorso = "/public"
    e se non funziona cambia upload, prendi quello di Baol che è ottimo

  7. #7
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    ho già provato anche così e non funzia
    ho cercato quello script ma non sono riuscito a trovarlo....
    ora lo cerco meglio...
    grazie
    Si fanno sempre nuove scoperte

  8. #8
    Questo è il link dell'upload di Baol.
    Dentro lo zip ci sono anche degli esempi.

  9. #9
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    ma per caricare un file c'è bisogno di quella roba kilometrica? ma asp è così alla canna del gas?
    ma per caricare un semplice file?
    Si fanno sempre nuove scoperte

  10. #10
    Il file upload.asp di baol non devi toccarlo, va lasciato così com'è.
    devi semplicemente usare poche righe di codice per fare l'upload di un semplice file:
    codice:
    <% 
    If Request.QueryString("upload")="1" then
    Dim oUpload
    Set oUpload = new cUpload
    oUpload.SetPath "public/"
    oUpload.Load() 
    oUpload.SaveAll 
    Set oUpload=Nothing 
    End if
    %> 
    <FORM METHOD="Post" enctype="multipart/form-data" ACTION="?upload=1"> 
    File : <INPUT TYPE="file" NAME="Campo1">
     
    <INPUT TYPE="submit" NAME="Enter"> 
    </FORM>
    Salva questo file come form_upload.asp (per esempio) e metti sia questo file che il file upload.asp insieme nella root del tuo sito.
    l'immagine verrà salvata nella cartella public, come puoi facilmente vedere dalla riga:
    codice:
    oUpload.SetPath "public/"
    Mi pare che più semplice di così ...

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.