Kjapp og trygg hosting for Wordpress

Laste opp filer til annet webhotell

kongen

kongemedlem
Her står det hvordan man kan laste opp filer til en webserver:
PHP File Upload

Men hvis man har dette scriptet på kål.no og ønsker derifra å laste opp fårikål.jpg til sau.no/upload/ hvor i scriptet skal man putte inn ftp/brukernavn/passord for sau sin server?
 

fabbz

Medlem
Det er ingen måte med PHP å laste filer direkte fra klienten til en ekstern server.
For å få dette til må du først la brukeren laste opp filen til din server, også bruke php til å laste filen fra serveren til en ekstern server.

Alternativ 1:
En måte er å benytte seg av php sin egen klient, men det forutsetter at dette er installert på webhotellet ditt.

Link: PHP: FTP - Manual

I følge scriptet du linket til så ligger filen i : "upload/" . $_FILES["file"]["name"]
Først må du sette opp en tilkobling med ftp_connect()
Deretter må du logge inn med ftp_login()
Og laster opp filen med ftp_put()
Og avslutter med ftp_close()

Deretter kan du slette filen fra serveren.

Eksempel fra php.net med en liten justering fra meg. Koden kan legges inn i scriptet du linket til etter denne linjen: "echo "Stored in: " . "upload/" . $_FILES["file"]["name"];"

Kode:
<?php 
 $ftp_server=""; 
 $ftp_user_name=""; 
 $ftp_user_pass=""; 
 $file = "upload/" . $_FILES["file"]["name"]; //filen som skal lastes opp fra kål.no
 $remote_file = "upload/" . $_FILES["file"]["name"]; //hvor filen skal lagres.. Absolute path er enklest


 // set up basic connection 
 $conn_id = ftp_connect($ftp_server); 

 // login with username and password 
 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

 // upload a file 
 if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { 
    echo "successfully uploaded $file\n"; 
    exit; 
 } else { 
    echo "There was a problem while uploading $file\n"; 
    exit; 
    } 
 // close the connection 
 ftp_close($conn_id); 
?>

NB. har ikke testet koden. :)

Alternativ 2:
Du kan prøve å bruke file_put_contents(), med stream_context_create().


Lykke til
 
Topp