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

    [Classic ASP] Upload automatico con una pagina ASP

    Avrei la necessità di effettuare l'upload automatico di 2 documenti. Il tutto con UNA sola pagina ASP (o anche più pagine, purchè una lanciata automaticamente dall'altra).
    Il codice seguente, relativo a 3 diverse pagine ASP effettua quanto richiesto ma richiede il fattivo contributo dell'utente che deve dapprima scegliere il file e poi premere il pulsante UPLOAD; questo per due volte.
    Io viceversa vorrei che l'intervento dell'utente fosse assolutamente nullo. Preciso che i nomi dei file da uploadare sono fissi, giorno per giorno.
    Purtroppo la presenza di un FORM (o una FORM, come si dice ?) nega l'automatismo desiderato e non so come rimediare. Ovviamente non è per me indispensabile utilizzare il componente AspSmartUpload; qualunque altra soluzione andrebbe bene. L'esempio da me realizzato è solo indicativo.
    Grazie per l'attenzione.
    Primo file
    codice:
    <%
    D=Date
    Nome=mid(D,7,4)&mid(D,4,2)&left(D,2)
    response.redirect "Upload.asp?Nome="&Nome
    %>
    Secondo file
    codice:
    <html>
    <head>
    </head>
    <body>
    <%
    Nome=request("Nome")
    %>
    <form
        method="post"
        action="upload2.asp"
        enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" name="ok" value="UPLOAD">
    </form>
    </body>
    </html>
    Terzo file
    codice:
    <%@LANGUAGE = VBScript%>
    <%
        On Error Resume Next
        Dim objUpl
        Set objUpl = Server.CreateObject("aspSmartUpload.SmartUpload")
        objUpl.MaxFileSize = 100000
        objUpl.Upload
        objUpl.Save("/SonoQui")
        Set objUpl = Nothing
        If Err.Number = 0 Then
            Response.Write "Upload eseguito con successo!"
         Else
            Response.Write "Errore in fase di upload, riprova!"
        End If
    %>
    Ultima modifica di giustavalla; 05-07-2017 a 21:06

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non è possibile automatizzare un upload tramite browser (che sono firefox, chrome, explorer, safari, etc...) le soluzioni:
    A) Crei un software (il linguaggio dipende da S.O. installato sul pc es window = C/C++) specifico che recuperi il o i file e le invii al server (soluzione migliore per creata ad doc)
    B) Verifichi se ci sono estensioni per il browser che usi che possa fare il recupero dei file dal pc e le invii al server (dubito che possa esserci in mani sbagliate potrebbe fare seri danni)


    P.S. Chiaramente sia la soluzione A che la soluzione B vanno installate obbligatoriamente sul singolo pc.
    P.S.S. ASP finché non risolvi il recupero dei file da inviare al server è ininfluente
    Ultima modifica di cavicchiandrea; 06-07-2017 a 17:19
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,659
    si può scrivere anche in VBS, e poi si mette in esecuzione automatica.

  4. #4
    @cavicchiandrea: Non intendo utilizzare un browser. Sto cercando di sviluppare un'app per Android e, mediante il linguaggio B4A, sono ad esempio in grado di "lanciare una pagina ASP passandogli, se necessario, gli opportuni parametri
    web = PaginaDownload & "GetGitaSci.asp?Username=" & Username & "&Password=" & Password & "&DataIniziale=" & DataIniziale & "&DataFinale=" & DataFinale
    req.InitializePost2(web, query.GetBytes("UTF8"))
    hc2.Execute(req, 1)
    Poi sono in grado di leggere il risultato della query lanciata nella pagina ASP :
    res = Response.GetString("UTF8")
    Da quanto sopra riportato ipotizzo che sia tecnicamente possibile fare quanto desiderato; come non so.
    Per risolvere il mio problema avevo pensato, ma non funziona, di modificare fare il submit automatico (nel secondo file) con
    <body onload="document.getElementById('sono').submit()">
    e valorizzare l'input con
    <input type="file" name="file" value="<%=Nome%>.plt" >
    Evidentemente AspSmartUpload prevedere un INPUT reale.
    Nemmeno altre soluzione di upload in "pure ASP" (senza componenti cioè) sono riuscito a farle funzionare.

    @vincent.zero: non saprei come fare.

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,659
    prima di tentare altri suggerimenti è bene che tu definisca meglio il contesto e le esigenze reali.

    sembra che tu abbia bisogno solo di caricare due file predeterminati, il che puoi farlo via fpt, facendolo fare a vbs (ma non sono nemmeno sicuro che android supporti vbs).
    devi lavorare su desk o su mobile?
    Ultima modifica di Vincent.Zeno; 07-07-2017 a 11:50

  6. #6
    Non vorrei utilizzare l'FTP ma solo l'HTTP.
    Ho comunque risolto tutto grazie ad una semplice pagina VBS, che riporto qui sotto :
    codice:
    <%@ Language=VBScript %>
    <%
      n=now()
      temp= year(n) & month(n) & day(n) 
      strFileName = temp&".plt"
      a=Request.TotalBytes
      b=Request.BinaryRead(a)
      set BinaryStream = CreateObject("ADODB.Stream")
      BinaryStream.Type = 1 '
      BinaryStream.Open
      BinaryStream.Write b
      BinaryStream.SaveToFile server.MapPath(strFileName), 2 
      response.write strFileName 
      set BinaryStream = nothing
    %>
    Richiamo questa pagina dal codice B4A con questa riga (ed altre che qui ometto perchè non interessano questo forum) :
    codice:
     req.InitializePost("http://www.nome_sito.it/cartella/uploadform.asp", InputStream1, size)
    Il codice B4A gira su un device mobile Android mentre il file deve essere caricato in un sito web.
    Grazie a tutti.

  7. #7
    Ancora un aiutino, se possibile.
    Come già detto sono in grado di effettuare l'upload di un file con la seguente istruzione
    codice:
    req.InitializePost("http://www.nome_sito.it/cartella/uploadform.asp", InputStream1, size)
    Tuttavia non riesco a farlo in locale dove ho installato IIS 7.0 e all'url http://192.168.1.2 sono in grado di visualizzare in un browser il mio sito, sempre in locale. Lo stesso sito posso visualizzarlo con un http://localhost

    In altre parole
    req.InitializePost("http://localhost/cartella/uploadform.asp", InputStream1, size)
    req.InitializePost("http://192.168.1.2/cartella/uploadform.asp", InputStream1, size)
    non vanno.
    Mentre
    req.InitializePost("http://www.nome_sito.it/cartella/uploadform.asp", InputStream1, size)
    sì.
    Dipende sicuramente da un settaggio di IIS, ma quale ?
    Grazie ancora.

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,659
    hai già verificato i permessi di scrittura?


    edit
    domanda necessaria:
    ma verso localhost sta provando direttamente dalla stessa macchina, vero?
    Ultima modifica di Vincent.Zeno; 08-07-2017 a 11:46

  9. #9
    Tutta la cartella che contiene il sito locale ha (da Esplora risorse) Proprietà - Sicurezza - Everyone - Consenti tutti selezionati (compreso Lettura ed esecuzione).
    In altre parole la everyone ha il controllo completo su tutta la cartella.

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,659
    riscrivo (potresti non aver letto)

    domanda necessaria:
    ma verso localhost sta provando direttamente dalla stessa macchina, vero?

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