Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15

    errore su Request.BinaryRead ()

    sto cercando di fare un upload di un file in asp.....
    ho preso lo script in rete ma non funziona

    l'errore è sull'istruzione Request.BinaryRead () :

    Errore di compilazione di Microsoft VBScript error '800a0401'

    Prevista fine istruzione

    /Uploader_news/upload.asp, riga 11

    DatiRicevuti = Request.BinaryRead ByteRicevuti

    chiaramente la pagina upload.sap riceve i dati da una form con metodo Post e enctype="multipart/form-data"

    codice:
    <%
    'Questa variabile setta il percorso di dove effettuare l'upolad
    'la cartella non puo non esistere lo script non la crea ! ! !
    
    percorso = "/savefiles"
    
    ByteRicevuti = Request.TotalBytes
    Response.Write ByteRicevuti
    
    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)
    
    		' Recupero i campi se sono compilati
    		if instr(Intestazione,"testo1") > 0 then
    			testo1 = ContenutoFile
    		end if
    
    		' Nel caso in cui fossero presenti piu campi basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    		'if instr(Intestazione,"testo2") > 0 then
    		'	testo2 = ContenutoFile
    		'end if
    		
    		'if instr(Intestazione,"testo3") > 0 then
    		'	testo3 = ContenutoFile
    		'end if		
    
    		' 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
    
    		' Lo stesso discorso vale anche per i campi dei file :
    		' Nel caso in cui fossero presenti piu file basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    
    		'if instr(Intestazione,"file2") > 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")
    		'		Upload2 = True
    		'		DimensioneFile2 = len(ContenutoFile)
    		'		EstensioneFile2 = right(ContenutoFile,3)
    		'		NomeFile2 = NomeFile
        	'		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile2), True, False)
        	'		textStream.Write ContenutoFile
        	'		textStream.Close
        	'		Set textStream = Nothing
    	   	'		Set FSO = Nothing
        	'  end if
    		'end if
    
    		'if instr(Intestazione,"file3") > 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")
    		'		Upload3 = True
    		'		DimensioneFile3 = len(ContenutoFile)
    		'		EstensioneFile3 = right(ContenutoFile,3)
    		'		NomeFile3 = NomeFile
        	'		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile3), True, False)
        	'		textStream.Write ContenutoFile
        	'		textStream.Close
        	'		Set textStream = Nothing
    	   	'		Set FSO = Nothing
        	'  end if
    		'end if
    	next
    
    ' Da qui in poi è possibile fare esegiure allo script altre operazioni
    ' inserire qui gli script aggiuntivi che si vogliono eseguire dopo l'upload
    ' Per esempio visualizzare quello che è stato inserito all'interno del
    ' compo testo
    
    Response.Write "Il valore immesso nella testo1 è " & testo1 & "
    "
    
    ' Utilizzando il sistema descritto sopra è possibile visualizzare campi
    ' testo aggiuntivi presenti nel form
    ' Response.Write "Il valore immesso nella testo2 è " & testo2 & "
    "
    ' Response.Write "Il valore immesso nella testo3 è " & testo3 & "
    "
    
    ' E la stessa cosa per i campi dove è stato eseguito l'upload dei file
    
    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
    
    'If Upload2 = true then
    '	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile2*0.001 & "kb"
    '	Response.Write "
    Grazie di aver inviato il tuo file"
    'End If
    
    'If Upload3 = true then
    '	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile3*0.001 & "kb"
    '	Response.Write "
    Grazie di aver inviato il tuo file"
    'End If
    
    End if
    %>
    cosa devo fare?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Cambiare script.
    Sei in hosting? Se non puoi usare componenti per l'upload usa questo:
    http://www.creamweb.it/script/mostra.../?id_script=12

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15
    grazie roby per la dritta....

    upload che mi hai consigliato fa proprio al caso mio dal momento che devo fare l'upload di un immagine e al tempo stesso scrivere un record su db.
    il problema però è che in locale mi funziona ma di da un errore che nn capisco:

    Errore di run-time di Microsoft VBScript error '800a01a8'

    Necessario oggetto: 'Files'

    /upload.asp, riga 365

    eseguo comunque la form e mi inserisce i dati sul db e mi fa l'upload del file.

    invece se lo testo sul server (aruba) mi da questo errore:

    Microsoft VBScript runtime error '800a01a8'

    Object required: 'Files'

    /upload.asp, line 365

    tento comunque di inviare la form e mi restituisce questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e4e'

    Operation was canceled.

    /upload.asp, line 1142


    e a differenza che in locale, non fa ne l'inserimento del nuovo record ne l'upload.
    premetto che la cartella di destinazioe dei file ha i permessi di scrittura


    sapresti darmi qualche consiglio?

    ti ringrazio
    Andrea

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se sei su aruba puoi già usare un componente per l'upload: aspupload.
    http://vademecum.aruba.it/start/persits/

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15
    grazie di nuovo roby!!!!
    l'upload di aruba è perfetto!!!
    nn funziona in locale ma in rete sì

    ora però ho un altro problema.....
    ho creato una pagina per visualizzare le immagini che ho uploudato, in locale la pagina mi carica le foto ma in rete no. mi mostra l'icona dell'immagine come se nn trovasse il file....perchè?
    le immagini le carica nella cartella "mbd-database"(destinazione imposta come consigliata da upload di aruba)
    c'è qualcosa devo sapere?

    codice:
    <% While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) %>
        <tr>
          <td><%=(Recordset1.Fields.Item("titolo").Value)%></td>
          <td><%=(Recordset1.Fields.Item("description").Value)%></td>
          <% 
               foto = "/mdb-database/immagini" & "/" & (Recordset1.Fields.Item("filename").Value)
         
               foto = "[img] & chr(34) & foto & chr(34) & [/img]"
    
    	%>
          <td><%= foto %></td>
          <%= "/mdb-database/immagini" & "/" & (Recordset1.Fields.Item("filename").Value) %>
        </tr>
    scusa se ti disturbo ma sto imapzzendo
    grazie

    Andrea

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Le immagini devi metterle in una cartella con accesso in lettura, cosa che la mdb-database non è.
    Devi usare la cartella /public/

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15
    come ho già detto prima l'upload di aruba consiglia di utilizzare la cartella mdb-database, comunque ho controllato i permessi e sono abilitati in lettura. credo sia normale dal momento che devo poter leggere dal database....o mi sbaglio?

    grazie

    Andrea

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti sbagli, sono in lettura del database via script ma non in lettura via browser.
    Se l'immagine c'è e la punti digitando l'url nel browser non la raggiungi...

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15
    in effetti hai ragione sul fatto che l'immagine c'è ma se la punto nn me carica.....
    allora nn capisco perché si consiglia di utilizzare tale cartella per l'upload...

    seguirò il tuo consiglio di mettere le immagini in un altra cartella

    ti ringrazio per l'attenzione che mi hai dato e la tempestività delle risposte

    Andrea

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    15
    ok roby!!!

    problema risolto.....mi sono incagliato su una stupidaggine!

    ti posso rompere le p...e ancora su una cosa?
    perché l'upload nn mi funziona in locale?

    grazie di tutto!!!!

    andrea

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 © 2026 vBulletin Solutions, Inc. All rights reserved.