upload file in un web server, da un'altro web server

  • Creatore Discussione Creatore Discussione egialma
  • Data di inizio Data di inizio

egialma

Nuovo Utente
3 Ott 2012
29
0
0
Ciao a tutti, dovrei effettuare un operazione forse un po' particolare e non so né si si può, né come farla.

Da un web server devo estrapolare un file in xml contenente varie informazioni custodite in un db mysql.

Fin qui nulla di particolare, da una pagina php estrapolo il file e lo salvo in una cartella all'interno del web server "A".

A questo punto mi tocca salvare in locale, una copia del file appena generato.

Ora dovrei caricare questo file in un altro web server "B", aprendo una pagina dedicata all'upload di questo file, caricandolo a mano andando a selezionare la copia salvata sul mio pc in locale.

Poichè i due Web server con i relativi db, sono di due società diverse e che nessuna delle due vuole far accedere l'altra direttamente al loro db, volevo sapere se esiste un modo per passare il file, in formato xml, da una pagina web del server "A", direttamente nella pagina web del server "B".

Se fattibile, ogni suggerimento sarà gradito
 
Ti mostro un esempio di come lo gestirei io

file del primo server, dove andrà aggiornato il file (esempio amatoriale)
PHP:
<form method="POST" action="index.php" enctype="multipart/form-data">
    <input type="file" name="file_to_upload">
    <input type="submit" value="invia">
</form>
<?
$file = isset($_FILES['file_to_upload']) ? $_FILES['file_to_upload'] : '';

if(!empty($file['name'])){
   if(move_uploaded_file($file['tmp_name'],'local_update/'.$file['name'])){
       $file = file_get_contents('local_update/'.$file['name'],true);
       fopen('http://miosito.com/remote.php?pass=miapassword&update='.urlencode($file),'r',false);
       echo 'File aggiornato con successo';
   }else echo 'Errore nel caricamento';
 }
?>

remote.php dove riceverai i dati
PHP:
<?
$my_pass = 'miapassword';
if(!empty($_GET['pass']) && !empty($_GET['update'])){
   if($_GET['pass']==$my_pass){
    $file = urldecode($_GET['update']);
    file_put_contents('remote_file.xml',$file);
   }
}
?>

Per sicurezza potresti mettere più password o modificare il tutto come vuoi, fatto sta che questo è uno dei metodi più semplici, perché non ti serve creare nessun context da inviare o altro
 
Ti ringrazio per l'interesse e la soluzione proposta, appena possibile la proverò


Grazie ancora
 

Discussioni simili