Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Creare una nuova cartella

    Salve a tutti, premetto che è da poco che ho iniziato e mi scuso per la banalità delle domande.
    A me servirebbe creare una cartella in remoto tramite un form l'utente inserisce un nome e la cartella che devo creare deve prendere quel nome.
    Ho trovato nella guida una pratica funzione che fa cio, vorrei adattarla alle mie esigenze.

    Ho fatto un paio di prove ma il problema è che non riesco a farla girare.
    Una cosa che ho notato è che siccome il mio server ha i permessi di scrittura solo sulla cartella public è la cartella di default (i permessi sono ereditari alle sottocartelle almeno da quello che leggo dal manteiner), quando vado ad inserire "/public/..." come path public la colora e non so se questo è un bene o no.

    Vi posto un pò di codice.

    codice:
    <body>
    
    <form  id="prova" action="UploadDB/index.asp" method="post">
      
    
    nome
        <input name="proviamo" type="text" />
      </p>
      
    
    
        <label>
        <input type="submit" name="Submit" value="Invia" />
        </label>
        </p>
    </form>
    
    
    
    </p>
    <%
    public function mkdir(proviamo)        
    
    Dim fso 
    Dim return 
    
    ' Attiva la gestione errori 
    on error resume next : err = 0 
    
    ' Crea l'oggetto FSO 
    Set objFso = Server.CreateObject("Scripting. FileSystemObject") 
    objFso.CreateFolder(Server.MapPath(/public/proviamo)) 
    if (err = 0) then 
    return = true 
    else 
    return = false 
    end if 
    Set objFso = Nothing 
    err = 0 : err.clear() 
    rmdir = return 
    
    end function 
    %>
    </body>
    Questo è quello che ho combinato
    Quando la lancio mi da errore. potreste darmi una mano?

    grazie infinite

  2. #2
    logicamente un'errore era quello di non recuperare il nome purtroppo non avevo badato alla cretinata scusate.
    Ma per il resto comunque non mi funziona. Il codice con la correzione che ho apportato è:

    [codice]
    folder = request.form("proviamo")
    Dim fso
    Dim return

    ' Attiva la gestione errori
    on error resume next : err = 0

    ' Crea l'oggetto FSO
    Set objFso = Server.CreateObject("Scripting. FileSystemObject")
    objFso.CreateFolder(Server.MapPath("/public/"& folder))
    if (err = 0) then
    return = true
    else
    return = false
    end if
    Set objFso = Nothing
    err = 0 : err.clear()
    rmdir = return

    %>
    [/codice]

    In questo modo la pagina funziona ma non mi crea la directory.

    qualche consiglio?

  3. #3
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    ("/public/"&folder&"/"), true

    metti questo così come path di creazione
    dovrebbe andare tutto a posto almeno a me funziona

  4. #4
    MI dispiace ma non va nemmeno così. Riposto di nuoco il codiche che ho scritto, forse c'è qualche errore.

    [Codice]

    <%

    folder = request.form("proviamo")
    Dim fso
    Dim return

    ' Attiva la gestione errori
    on error resume next : err = 0

    ' Crea l'oggetto FSO
    Set objFso = Server.CreateObject("Scripting. FileSystemObject")
    objFso.CreateFolder(Server.MapPath("/public/"&folder&"/")), true

    if (err = 0) then
    return = true
    else
    return = false
    end if
    Set objFso = Nothing
    err = 0 : err.clear()
    rmdir = return
    %>

    [/Codice]


    cos'è che non va secondo voi?

    Grazie per la pazienza

  5. #5
    Allora ho cambiato un pò il codice, il form è sempre lo stesso come sopra.
    il codice che ho usato adesso è:

    [Codice]'dichiarazione variabili
    Dim FSO, prova

    'acquisizione dati da form
    prova = Request.form("proviamo")

    'creazione istanza del File Scripting Object
    SET FSO = Server.CreateObject("Scripting.FileSystemObject")

    FSO.CreateFolder(Server.MapPath("public\" & prova))

    SET FSO = NOTHING[/codice]

    quando lancio la pagina da internet explorer prima di inserire il nome della directory e quindi premere il taso invio mi esce questo avviso.

    Microsoft VBScript runtime error '800a0046'

    Permission denied

    /upload/provalo.asp, line 37

    dove la linea 37 è: "FSO.CreateFolder(Server.MapPath("public\" & prova))"

    cosa vuol dire? non ho i permessi per creare una cartella?.

    Nella cartella public almeno a come dice aruba ho i permessi di scrittura e lettura, infatti da form riesco a caricare file, è la stessa cosa anche per la cartella??

    Questo link specifica le cartelle ed i vari permessi che ho su aruba.

    http://<a href="http://assistenza.ar...html</a><br />


    Qualcuno puo aiutarmi? grazie e scusate il casino che ho creato

  6. #6
    Allora sto impazzendo.
    Ho visto che staticamente dando un nome ed eseguendo questo codice riesco a creare una cartella.

    [codice]<%
    Dim newdir
    newdir = "/public/nuova"
    Dim objFile
    Set objFile = Server.CreateObject("Scripting.FileSystemObject")
    objFile.CreateFolder Server.MapPath(newdir)
    Response.Write "Directory creata"
    %> [/codice]


    però se voglio farla creare dinamicamente non ci riesco, mi da sempre errore.
    In cosa sbaglio? Il codice è sempre quello sopra....

  7. #7
    Prova con questo:
    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    PUBLIC FUNCTION createDir(dirName)
    	Dim objFso
    	Dim return
    	on error resume next : err = 0
    	IF dirName = "" OR dirName = Null THEN
    		return = False
    	ELSE
    		Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    		objFso.CreateFolder(Server.MapPath(dirName))
    		IF (err = 0) THEN
    			return = True
    		ELSEIF (err <> 0) THEN
    			return = False
    		END IF
    		Set objFso = Nothing
    	END IF
    	'Se volete sapere perchè da il risultato FALSE allora togliete apice che sta all'inizio del prossimo rigo.
    	'Response.Write("NUMERO ERRORE: "&err.number&"
    DESCRIZIONE ERRORE: "&err.description&"
    
    ")
    	err = 0 : err.clear()
    	createDir = return
    END FUNCTION
    Dim page
    page = Request.QueryString("page")
    IF page = "create" THEN
    	Response.Write("Il risultato: " & createDir(Request.Form("Name")) & "  (FALSE=Cartella non creata; TRUE=Cartella creata)")
    ELSE
    %>
    <HTML>
    	<HEAD>
    		<TITLE>Form creazione directory</TITLE>
    	</HEAD>
    	
    	<BODY>
    	<form method="post" action="createDir.asp?page=create">
    		<input type="text" name="Name">
    		<input type="submit" value="Crea Cartella">
    	</form>
    	</BODY>
    </HTML>
    <%
    END IF
    %>

  8. #8
    Uhm ho fatto il copia ed incolla del codice, e mi funziona cambiando la path

    grazie mille, dopo cerco di confrontarlo con il mio e vedere cosa sbagliavo

    A presto

  9. #9

  10. #10
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    ottimo anche se a me il codice come il tuo e la modifica di path che ti avevo postato su aruba mi funzia perfettamente

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.