Upload file di un client su sito

  • Creatore Discussione Creatore Discussione Gae58
  • Data di inizio Data di inizio

Gae58

Utente Attivo
26 Mar 2012
84
0
0
salve,

ho la necessità di inviare in automatico un file preente sul disco C del mio PC sul sito.

Ho provato in varie maniere anche con l'ftp, ma senza alcun risultatao.

Qualche suggerimento?

L'errore che mi ritorna è questo:
Warning: ftp_put() [function.ftp-put]: Unable to access

grazie

Gaetano
 
ciao
...una scritta in inglese che non ho capito granché
questo mi fa piacere, evidentemente non sono l'unico che non capisce l'albionico:mad:
prova a darci un occhio meglio, se capisco ti dico, altrimenti spera in qualche altro forumista
 
ciao
da quello che ho capito, per risolvere (forse) prima di usare ftp_put() metti

PHP:
<?php
//....
ftp_pasv($conn_id, true);//da aggiungere
//....
ftp_put($conn_id, $remote_file, $file, FTP_ASCII));//non so se poi ci va questo FTP_BINARY al posto di FTP_ASCII
//....
?>
 
ciao
è questa
Anonymous 13-Mar-2012 10:28
Hi !

If you get this error when trying to send data to server :
Warning: ftp_put() [function.ftp-put]: Unable to build data connection: Connection timed out...
..........
è la prima nota
 
Questo è il codice completo:
Warning: ftp_put() [function.ftp-put]: Unable to access C:\\Cartella1\\Asse.csv in /var/www/vhosts/softwaregl.it/httpdocs/UploadUffici.php on line 29

Warning: ftp_put(C:\\Cartella1\\Asse.csv) [function.ftp-put]: failed to open stream: No such file or directory in /var/www/vhosts/softwaregl.it/httpdocs/UploadUffici.php on line 29

grazie
 
Come immaginavo: lo script PHP non riesce a trovare il file che vuoi caricare. Prova ad applicare la funzione stripslashes alla stringa per eliminare gli slash di troppo (immagino che recuperi il valore da un database), e verifica che il file esista davvero.
 
Oltre alla funzione che mi hai indicato ho inserito anche il controllo sull'esistenza del file:
$LocalFile = stripslashes($_GET['FileUf']);
if (file_exists($LocalFile)) {
echo "trovato";
}else{
echo "NON trovato ".$LocalFile;
}

Mi ritorna che non ha trovato il file.
A questo punto penso sia un problema del sever, in quanto il file esiste

Ho provato anche un'altra funzione:
echo ftp_size($Conn, $RemoteFile);
e mi riporta -1, anche in questo caso il file esiste
 
Ultima modifica:
Se il file non esiste sul client (dunque in locale), come può essere un problema del server?
Infatti anche file_exists restituisce false.

Ora che guardo il messaggio di errore mi viene un dubbio atroce: se il sistema è Linux, come accidenti fa ad esistere un file in C:? Tu stai cercando di caricare un file dal computer al server tramite una pagina Web? In questo caso direi che stai sbagliando sistema: come può il server leggere il file locale senza il tuo consenso?
 
Il sito è su un server linux.

Il mio PC ha seven

Se provo a uplodare il file tramite una pagina web col tag input funziona tutto bene.

Io però vorrei o riempire in automatico il campo input o attraverso l'url ed il get uplodare in automatico ilfile attraverso l'ftp.

Ho fatto altre prove ed come se lo script non potesse leggere il mio disco oppure c'è bisogno di qualche altro comando
 
Non c'è un modo per caricare un file senza passare da un form, a meno che lo script non giri sul client (quello con Windows) e da lì carichi il file tramite la libreria ftp. Tu invece avevi quello script sul server, giusto?
 
il file php con lo script sta sul server

perchè si può avere anche sul client?

e se si come si fa?
 
Se sta sul server non può funzionare: il server non può prelevare file dal client. Immagini che enorme rischio per la sicurezza sarebbe se ciò fosse possibile?
Per usare lo script sul client dovrai prima configurare PHP (ti consiglio di installare l'ambiente WampServer).

Comunque, cosa vuoi fare di preciso? Forse c'è una soluzione più semplice.
 
scusa per il ritardo,

ho una procedura scritta in windows in locale.
Tale procedura crea un file csv da inviare sul sito. Tieni prsente che ci sono vari utenti che usano questa procedura ed ogni utente deve inviare il proprio file per avere un file unico
Ho scritto il codice per creare il file csv e poi per aprire la pagina web per l'invio del file e sin qui tutto bene.

Poi, avendo presente coloro che devono usare la procedura, ho pensato che sarebbe sttao meglio se dalla procedura, dopo la creazione del file ci fosse l'apertura della pagina web e nel link, passando alcuni parametri effettuare l'invio in automatico.
Ma qui come ben sai mi sono fermato perchè funziona tutto, ma non riesce a prendere il file appena creato per l'invio sul sito.

Mi andrebbe bene anche se fosse possibile mettere in automatico il file appena creato sulla riga di input, invece di far fare lo sfoglia all'utente.
 
Purtroppo non credo che ci sia un modo per automatizzare il processo senza un software ad-hoc da far installare a tutti i client. Non è possibile neanche riempire automaticamente il campo input per questioni di sicurezza.
 

Discussioni simili