Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209

    Permessi per fare l'Upload

    So già che tra un po' il sig. Roby mi ucciderà
    Comunque, seguendo l'articolo di questo sito riguardante l'Upload, sono andato incontro al problema dei permessi.
    Io all'interno della cartella Inetpub/wwwroot ho inserito una cartella intranet che contiene il mio sito. All'interno di questa cartella ho altre cartelle tra cui "data" che contiene il database e seguendo i consigli di Roby l'ho settata per renderle possibili tutti i permessi.
    Ora però devo eseguire l'upload, e l'upload vorrei eseguirlo all'interno della cartella intranet/upload. Ho provato a fare lo stesso procedimento che avevo fatto con la cartella "data", ma quando vado a fare condivisione web e inserisco l'alias che Roby mi aveva detto (IUSR_nomecomputer) Windows non me lo permette perchè è gia utilizzato.
    Cosa devo fare?
    E' possibile settare una sola cartella con quelle caratteristiche?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho mai ucciso nessuno... per ora...
    Non devi fare "condivisione web" ma tasto destro sulla cartella PROPRIETA' e SCHEDA PROTEZIONE.
    Se poi vuoi replicare questa cosa dal pc locale al server remoto assicurati che chi ti fa hosting te lo faccia fare.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Ah... è vero!
    però, non funziona....
    Lo script che sto usando è quello che ho trovato in un articolo di questo sito.
    Codice PHP:
    <%
    'Questa variabile setta il percorso di dove effettuare l'upolad
    'la cartella non puo non esistere lo script non la crea ! ! !

    percorso = "http://127.0.0.1/intranet/upload"

    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)

            ' 
    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 presentee 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 NomeFile<>"" then
                    Set FSO = CreateObject("Scripting.FileSystemObject")
                    Upload1 = True
                    DimensioneFile1 = len(ContenutoFile)
                    EstensioneFile1 = right(ContenutoFile,3)
                    NomeFile1 = NomeFile
                    
                                    [COLOR=red][B]Set textStream = FSO.CreateTextFile(server.mappath(NomeFile1), True, False)[/B][/COLOR]
                    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 = ")
            '    
    instr(10,Intestazione,chr(34))
            
    '    NomeUpload = mid(Intestazione,i + 10,j-i-10)
            '    
    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
    %> 
    Il problema me lo da alla riga che ho messo in rosso e in grassetto con il seguente codice:

    codice:
    Informazioni tecniche (per il personale del supporto tecnico)
    
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A0046)
    Autorizzazione negata
    /intranet/upload.asp, line 57
    Tipo di browser:
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
    Pagina:
    POST 28813 bytes to /intranet/upload.asp
    POST Data:
    error '80020009'
    Eccezione.
    
    /iisHelp/common/500-100.asp, line 222
    Ma io ho rilasciato i permessi di scrittura su quella cartella, difatti se utilizzo uno script che ho recuperato da internet, lo script di upload di Baol, lui funziona e mi esegue l'upload.
    Solo che è uno script non adatto a quello che voglio io, difatti a me servirebbe uno script come quello presente nei vostri articoli che mi permette di modificarlo molto più facilmente.
    Poi un'ultima cosa.
    Il percorso dove voglio inserire i documenti di upload è in un'altra cartella. Il form e le funzioni di upload funzionano sotto la cartella admin mentre gli upload li devo salvare nella cartella upload. La prima riga di codice permette di settare la variabile percorso... Come faccio a settarla senza dover ricorre all'indirizzo completo? Non credo che una volta che dovrò inserire il mio sito in intranet l'url rimanga 127.0.0.1...
    Grazie.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi utilizzare un percorso fisico:

    percorso = "D:\siti\intranet\upload" quello giusto ovviamente...

    e togliere il server.mappath quando salvi il file.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    codice:
    if NomeFile<>"" then
       Set FSO = CreateObject("Scripting.FileSystemObject")
       Upload1 = True
       DimensioneFile1 = len(ContenutoFile)
       EstensioneFile1 = right(ContenutoFile,3)
       NomeFile1 = NomeFile
       Set textStream = FSO.CreateTextFile("D:\Inetpub\wwwroot\intranet\upload", True, False)
    	textStream.Write ContenutoFile
    	extStream.Close
    	Set textStream = Nothing
    	Set FSO = Nothing
    end if
    Sempre preso dallo stesso codice del vostro articolo, Dopo i i tuoi suggerimenti e una bella rilettura dell'articolo e delle guide, comincio a capire qualcosa.
    Solo che su questo punto a quanto pare non c'azzecco proprio...
    Questo comando mi manda in palla IIS in quanto continua a dirmi:
    codice:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A0046)
    Autorizzazione negata
    /intranet/admin/vediCorsi.asp, line 96
    Però questa volta i permessi sono corretti !
    Dalla scheda protezione ho cliccato su aggiungi e ho fatto questo:


    E poi ho aperto tutto. Ma il risultato non cambia.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Hai messo il percorso fisico ma hai cancellato anche la variabile che incorpora il nome del file "NomeFile1"

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Finalmete!!!!!
    Grazie e alla prossima!

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.