I mit blogindlæg Tutorial - Håndtering af FTP i PHP del 1 så vi på hvordan du kunne håndtere FTP upload/download mm via de indbyggede FTP funktioner i PHP. Men hvad nu hvis man sidder på en host hvor disse funktioner er slået fra? Hvis cURL er slået til på serveren, ja så er løsningen her. Jeg sad tilfældigt og surfede dokumentationen til cURL (curl()), og så at det var muligt, så det måtte jeg lige afprøve, hvilket blev til følgende kode:
| Kopier til udklipsholder | Vis uden linie # | |
|---|---|
| 01 | <?php |
| 02 | $ftpBruger = 'dit_brugernavn'; //din ftp bruger |
| 03 | $ftpPass = 'dit_password'; //dit ftp password |
| 04 | $ftpServer = 'ftp.ditdomaene.dk'; //din ftp server |
| 05 | $ftpSti = '/'; //stien du ønsker at uploade til |
| 06 | $fil = 'dinfil.ext'; //den lokale fil på serveren der skal overføres |
| 07 | $ch = curl_init(); //start curl |
| 08 | $fp = fopen($fil,'r'); //åben vores fil for læsning |
| 09 | //fuld ftp sti hvor vi ønsker at uploade til inkl brugernavn og password |
| 10 | curl_setopt($ch, CURLOPT_URL, 'ftp://'.$ftpBruger.':'.$ftpPass.'@'.$ftpServer.$ftpSti.$fil); |
| 11 | curl_setopt($ch, CURLOPT_UPLOAD, 1); //upload |
| 12 | curl_setopt($ch, CURLOPT_INFILE, $fp); //send fil object til curl |
| 13 | curl_setopt($ch, CURLOPT_INFILESIZE, filesize($fil)); //fil størrelse på vores upload |
| 14 | curl_exec($ch); //udfør curl kald (upload fil) |
| 15 | $fejl = curl_error($ch); //evt fejl gemmer vi i $fejl; |
| 16 | curl_close ($ch); //luk curl |
| 17 | fclose($fp); //luk fil |
| 18 | if(empty($fejl)) { //hvis fejl er tom er filen uploadet |
| 19 | echo 'Filen blev uploadet'; |
| 20 | } else{ //ellers udskriver vi fejlen |
| 21 | echo $fejl; |
| 22 | } |
| 23 | ?> |
Personligt foretrækker jeg nu de indbyggede FTP funktioner, men ovenstående kode virker også ganske fint.
kommentarer
Pingbacks
Hvis du linker til en af mine blog artikler fra et blogsystem der udsender pings vil du få et gratis do-follow link fra mig, du kna også twitte om en post og få et link til din twitter profil (Jeg forbeholder mig dog retten til at slette eller nofollow spam :P)











