Per i Guru del PHP: upload di directory

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Per i Guru del PHP: upload di directory

Messaggio da targzeta »

Salve ragazzi,
ho la necessità di portare tutto un ramo di directory su di un server web, però non voglio passare via ftp, ma usando semplicemente uno script php che faccia selezionare all'utente una directory e poi gli permetta di caricare sul server remoto tutto il ramo.
Per capirci e come se volessi fare l'upload di un file, solo che il file è tutta una directory con le varie sottodirectory. Stavo cercando di capire la situazione. Da quello che ho capito in php non si può fare, a meno di selezionare i file uno alla volta, ma ci sarebbe una possibilità, ad esempio sfruttando i javascript?

Grazie,
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da aschenaz »

La prima soluzione che mi viene in mente è quella di comprimere
la directory e poi fare l'upload...
http://www.php.net/manual/en/book.zip.php etc...

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Per i Guru del PHP: upload di directory

Messaggio da targzeta »

aschenaz ha scritto:La prima soluzione che mi viene in mente è quella di comprimere
la directory e poi fare l'upload...
mmm, quindi il mio script php deve decomprime la directory e poi lavorarci su. L'idea non è maligna, però tieni conto che c'è un limite massimo alla dimensione del file che si può caricare, per il mio server web è di 18MB, se do la possibilità di caricare directory, allora uno la sfrutta, e molto probabilmente ci mette dentro anche più di 18MB.
Mi piacerebbe fare uno script che scandisce la directory selezionata e invoca lo script remoto per l'upload, senza che sia l'utente a scandire la directory.

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da conraid »

spina ha scritto:
aschenaz ha scritto:La prima soluzione che mi viene in mente è quella di comprimere
la directory e poi fare l'upload...
mmm, quindi il mio script php deve decomprime la directory e poi lavorarci su. L'idea non è maligna, però tieni conto che c'è un limite massimo alla dimensione del file che si può caricare, per il mio server web è di 18MB, se do la possibilità di caricare directory, allora uno la sfrutta, e molto probabilmente ci mette dentro anche più di 18MB.
Mi piacerebbe fare uno script che scandisce la directory selezionata e invoca lo script remoto per l'upload, senza che sia l'utente a scandire la directory.

Spina
Per fare questo devi appoggiarti a javascript o qualcosa lato client. Come fa il php a trovare i file dentro la dir dell'utente?
L'unica, IMHO, è come hai detto nel primo messaggio appoggiarsi a javascriot e magari tramite AJAX interagire con il php

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Per i Guru del PHP: upload di directory

Messaggio da targzeta »

conraid ha scritto:....
Per fare questo devi appoggiarti a javascript o qualcosa lato client. Come fa il php a trovare i file dentro la dir dell'utente?
L'unica, IMHO, è come hai detto nel primo messaggio appoggiarsi a javascriot e magari tramite AJAX interagire con il php
Infatti, ma mi piacerebbe sapere se usando i javascript ci si può riuscire nell'intento. Cioé, quando fai l'upload di un file tramite FORM, si deve impostare il method a POST e passare anche "enctype="multipart/form-data", con i javascript, si può fare una cosa del genere?
Tenete conto che io non ho mai studiato il javascript e AJAX non so neanche cosa sia :).

Mi basta sapere se la strada è giusta, per il resto, studiare il javascript non dovrebbe essere difficile,
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da conraid »

Mai fatto nemmeno io, ma l'unico modo è agire "anche" lato client

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da aschenaz »

Quindi, in teoria, tu vorresti permettere all'utente di selezionare una
directory e poi uno script dovrebbe scandire la directory e fare
l'upload file per file (e magari anche le sotto-directory)??

Se smanetti abbastanza con javascript può darsi che tu lo possa fare.
Praticamente, lo script dovrebbe creare tanti campi input tipo file
quanti sono, appunto, i file e riportarne in ognuno di essi il percorso
(non vedo come altrimenti possa farlo... :-k ). Ma credo insorgano
anche grossi problemi di sicurezza...
Ma lo domanda è: ne vale la pena? In fondo, anche la maggior
parte dei pseudo-client ftp via web permette solo l'upload file
per file (magari decomprimono gli eventuali file compressi): vedi,
ad esempio, http://netftp.lissyl.nl/ .

Comunque sia, in bocca al lupo! :D

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Per i Guru del PHP: upload di directory

Messaggio da targzeta »

Il punto è che se invio tramite form un file ad uno script lato server, lo script può lavorare con il file come meglio gli crede, ad esempio potrebbe rinominare il file, dire ad un database:"ora abbiamo anche un altro file", etc..etc..
Mentre se comprimo la directory:
1) Arrivo molto rapidamente a raggiungere il file_size_max
2) Lo script lato server si complica perchè deve prima decomprime il file, e poi eseguire lui la scansione delle directory e sotto-directory

Mentre se uso ftp:
1) Il cliente deve essere ingrado di usare ftp (o filezilla et simili)
2) Non posso eseguire dei controlli sui file che si sta uploadando, vedi aggiunta in un database del nome del file

Vediamo che succede, al massimo vi tengo aggiornati. Per ora sto studiando il javascript.

Spina

P.S. Per quanto riguarda la sicurezza, è ovvio che tutta questa libertà di azione la si deve dare solo a chi ha una sessione attiva, e non al primo che capita.
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da conraid »

Ma FTP puoi gestirlo da PHP
Guarda se c'è qualche funzione che può interessarti.
http://it2.php.net/ftp

Io non l'ho mai utilizzato, anche se mi hanno chiesto proprio giorni fa di implementare un sistema di trasferimento file i grandi dimensioni, che superi la dimensione settata dal server. Ma li penso che dovrò agire sul caching via ajax... avete qualche idea?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Per i Guru del PHP: upload di directory

Messaggio da targzeta »

Scusa, ma come dicevi giustamente tu ieri, come fa uno script lato server a sapere quali file sono presenti sul client? Tramite le funzioni FTP di PHP io credo che tu possa connettere il server su cui gira lo script, con un altro server via FTP, non con il PC locale che lancia in qualche modo lo script, o sbaglio?

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da conraid »

spina ha scritto:Scusa, ma come dicevi giustamente tu ieri, come fa uno script lato server a sapere quali file sono presenti sul client? Tramite le funzioni FTP di PHP io credo che tu possa connettere il server su cui gira lo script, con un altro server via FTP, non con il PC locale che lancia in qualche modo lo script, o sbaglio?

Spina
Non lo sa quali file sono presenti sul pc, e per quel poco che ho visto si può fare il contrario.
E comunque devi mandarle ad un server FTP.

Alla fine sì, devi sempre agire lato client per selezionare i file. O almeno non mi viene in mente altro

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da aschenaz »

Avevo provato a implementare un sistema via ftp, proprio per asche, ma ci ho
rinunciato, privilegiando l'upload (in una versione parallela...). Non che
la cosa sia impossibile. ma è molto più complicato dell'upload via http; tra
l'altro, bisogna star lì a distinguere, uno per uno, il mimetype del file...
Insomma, quello che con l'upload risolvi con semplicità, con l'ftp ti richiede
centinaia di righe di codice... Oltretutto, ho l'impressione che richieda un
uso abbondante di scripting lato client... Non fa per me! :lol:

Avatar utente
tarini
Linux 0.x
Linux 0.x
Messaggi: 38
Iscritto il: dom 23 mar 2008, 20:32
Kernel: 12
Desktop: KDE 3.x
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da tarini »

ragazzi con ajax e javascript in generale non è assolutamente possibile lavorare con i file in locale del client... (grazie a dio...)

per poter inviare in un solo colpo directory (sia compresse che non) cè la necessità di "andare oltre" a js tramite un'applett java o un flash (entrambi però come sappiamo richiedono un plugin)


riguardo all'FTP da PHP non credo serva in quanto permette di collegarsi dal server web ad un server ftp (il client non è inserito in questo workflow..)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Per i Guru del PHP: upload di directory

Messaggio da targzeta »

tarini ha scritto:...
per poter inviare in un solo colpo directory (sia compresse che non) cè la necessità di "andare oltre" a js tramite un'applett java o un flash (entrambi però come sappiamo richiedono un plugin)...
quindi quello che devo studiare sono le applet java? vabbuò, ci daremo da fare.
Il plugin dovrebbe essere lato client giusto? Per quello non è un problema.

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
tarini
Linux 0.x
Linux 0.x
Messaggi: 38
Iscritto il: dom 23 mar 2008, 20:32
Kernel: 12
Desktop: KDE 3.x
Contatta:

Re: Per i Guru del PHP: upload di directory

Messaggio da tarini »

spina ha scritto:quindi quello che devo studiare sono le applet java? vabbuò, ci daremo da fare.
buona fortuna... le applet sono davvero un argomento ostico

personalmente però consiglio flash... graficamente più bello e sicuramente piu diffuso (almeno come plugin per browser)
spina ha scritto:Il plugin dovrebbe essere lato client giusto? Per quello non è un problema.
esatto

Rispondi