Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    upload automatico file con javascript

    Salve a tutti,
    è da molto che sono iscritto al forum ma per problemi di studio non mi collego da un'eternità, comunque leggo sempre i vari post e spesso trovo le soluzioni ai miei problemi.
    Stavolta però ho bisogno di una mano.
    Sto facendo uno stage in cui mi è richiesti di utilizzare zencart (per chi non conosce è un cms scritto in php che permette di creare un negozio virtuale). Ho scritto un piccolo file batch che permette di scaricare in automatico un listino dal sito del mio fornitore e apre delle pagine internet con firefox per effettuare il login al pannello di amministrazione di zencart e caricare nel negozio i prodotti contenuti nel listino appena scaricato. Se sono stato poco chiaro rispiego.
    La pagina html che richiamo con firefox l'ho creata io ed ha questo codice:

    <html>
    <head>

    </head>

    <BODY>
    <form enctype="multipart/form-data" name="uploadform" id="uploadfile" action="http://url_negozio_online/zencart/admin/sincro.php?action=upload" method="post">
    <input type="file" name="fileA" >

    </form>
    <script language="javascript">
    document.getElementById('uploadfile').submit();
    </script>

    </body>
    </html>

    In pratica effettua in automatico il submit del form col metodo post e lo passa allo script php del negozio che poi si occuperà di gestire il file caricato.

    Ovviamente lasciando tutto in questo modo bisogna manualmente inserire il nome del file o cliccare su sfoglia e scegliere il file. Ma siccome tutta la procedura deve essere automatizzata, ad esempio per effettuare l'aggiornamento dei prodotti del negozio durante la notte, come faccio a caricare in automatico il file, senza intervenire manualmente da tastiera?
    Ho letto che il parametro value="" del campo file non può essere settato per ragioni di sicurezza, ed avevo pensato a codice javascript che mi permettesse di:

    1. fare il focus sulla casella di testo del file da inserire (già fatto , con IE funziona, con FF mi mette il focus sul tasto e non sulla casella di testo
    2. Simulare la pressione dei tasti per scrivere nella casella il nome del file, in modo da aggirare la protezione della proprietà value="" del campo file (in vbscript esiste la funzione sendkeys () se non sbaglio, non sono riuscito a trovarne una simile per javascript)
    3. Inviare in automatico i dati allo script php (già fatto con submit())

    Quindi se qualcuno conosce una funzione o un modo di emulare la funzione sendkeys con javascript può darmi una mano? O comunque un'alternativa per inviare in automatico il file allo script php, senza che l'utente debba intervenire. Una soluzione potrebbe essere uploadare il file con ftp in una cartella specifica, ma se fosse possibile preferirei utilizzare un form http.

    Per qualunque chiarimento sono a disposizione, intanto vi ringrazio anticipatamente per l'attenzione.
    Bye bye, buona giornata a tutti

  2. #2
    Ho scritto un piccolo file batch che permette di scaricare in automatico un listino dal sito del mio fornitore e apre delle pagine internet con firefox per effettuare il login al pannello di amministrazione di zencart e caricare nel negozio i prodotti contenuti nel listino appena scaricato. Se sono stato poco chiaro rispiego.
    Con cosa hai fatto questo script? Perche' con qualsiasi linguaggio dovrebbe essere possibile aprire direttamente una connessione verso il sito che ti interessa e passare via POST i parametri voluti.

    Cioe' mi pare un po' perverso creare un programma che simuli un'umano che batte sulla tastiera.

    Fai piuttosto in modo che il tuo script si connetta tramite http sul negozio virtuale.

    Ma poi questo negozio e' su un tuo dominio o appartiene ad altri?

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    @Maverick82 il javascript non può aiutarti (per fortuna) i upload devo essere eseguiti manualmente, per fare quello che vuoi (forse) in (aplet)java
    Oppure crei un script in c++ o visual basic che una volta installato su client fa quanto richiesto non credo vi siano altre strade.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Originariamente inviato da raven74
    Con cosa hai fatto questo script? Perche' con qualsiasi linguaggio dovrebbe essere possibile aprire direttamente una connessione verso il sito che ti interessa e passare via POST i parametri voluti.
    Quale script intendi? Io ho solo fatto un file .bat che richiama firefox e gli fa aprire delle pagine html che ho creato io..All'interno ci sono dei form con submit automatico per passare dei parametri alle pagine php del sito, perchè usano metodi POST. Ovviamente in caso di GET avrei potuto usare direttamente l'url..

    Originariamente inviato da raven74
    Cioe' mi pare un po' perverso creare un programma che simuli un'umano che batte sulla tastiera.
    Non è con intenzioni maligne che voglio fare questa cosa, soltanto che se il titolare del negozio virtuale vuole aggiornare i prodotti in massa, perchè ad esempio si appoggia ad un fornitore esterno che gli fornisce il suo listino, io gli imposto un'operazione pianificata di windows (oppure uno script richiamato con cron in linux) che alle 3 di notte, per esempio, quando in teoria nessuno visita il sito, fa eseguire in automatico il file .bat. In questo modo il file bat in automatico si scarica il listino nuovo ed inserisce sempre in automatico i prodotti nel negozio...tutto qua

    Originariamente inviato da raven74
    Fai piuttosto in modo che il tuo script si connetta tramite http sul negozio virtuale.
    Come? Non penso un file .bat possa farlo..Forse uno script di linux ma per ora sto lavorando sulla versione per windows

    Originariamente inviato da raven74
    Ma poi questo negozio e' su un tuo dominio o appartiene ad altri?
    Potrebbe essere su di un server che gestisco io fisicamente o anche su uno spazio web. Nel primo caso uso l'url localhost, nel secondo l'indirizzo del negozio. Fra l'altro nel caso del server locale ho risolto il tutto, perche attraverso il file .bat mi salvo il file dei prodotti in una cartella del server e quindi non c'è bisogno di passarlo con http. Devo solo richiamare lo script php che esegue il caricamento dei prodotti contenuti nel file.

  5. #5
    Originariamente inviato da cavicchiandrea
    @Maverick82 il javascript non può aiutarti (per fortuna) i upload devo essere eseguiti manualmente, per fare quello che vuoi (forse) in (aplet)java
    Oppure crei un script in c++ o visual basic che una volta installato su client fa quanto richiesto non credo vi siano altre strade.
    Avevo pensato ad uno script visual basic ma non è che lo mastico ben bene, quindi sarebbe abbastanza complicatuccio fargli selezionare la finestra di firefox, mettere il focus nella casella del file da caricare ed inviare i caratteri...ed effettuare il submit automatico....Almeno penso siano questi i passi da fare....

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per il submit non c'e' problema, hai gia' risolto, l'upload automatico non e' assolutamente possibile con tecnologia web per ovvi problemi di protezione, esplora la possibilita' con linguaggi di programmazione non web.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Ripeto che con un qualsiasi linguaggio (VB lo fa di sicuro se un po' lo mastichi) dovrebbe essere possibile creare una connessione verso il server e mandare i dati tramite http.

    In pratica sfrutti il tuo linguaggio come se fosse un browser.

    Non credo sia difficile. Sempre piu' facile che fare un programma che simula la tastiera su FF (e non credo nemmeno sia possibile. Sicuramente non con js come gia' detto da br1).

    Prova a chiedere sul forum VB

    PS

    con "perverso" non intendevo "maligno" ma "contorto"... ;-)

  8. #8
    Grazie a tutti per le risposte, adesso provo a fare un'applicazione in vb6 che mi permetta tale cosa, quindi apro una discussione nella sezione adatta
    Grazie nuovamente e buona giornata

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.