Jag har fått tips om att ändra till $server_file = "katalognamn/filnamn.csv", d.v.s. att ta bort '/' före katalognamn.
Även att använda ftp_pasv för att slå på passiv, men har dock inte hunnit testa det.
Hej!
Det är så att jag har åtkomst till en CSV-fil via FTP, men som det är nu så måste jag hämta den manuellt via "Startmenyn" -> "Kör" till min lokala dator och sedan föra över den till rätt katalog hos webbhotellet Interact.
Men jag undrar om det är möjligt att CVS-filen hämtas automatiskt (en gång om dagen) och att den då hamnar direkt i katalogen hos webbhotellet?
Min tanke var att man i en PHP-fil kunde anropa ftp_connect(), men jag får det inte att fungera. Vet inte om jag har fel i koden, eller om det inte är tekniskt möjligt, p.g.a. inställningar hos "filhämtningsstället" och/eller webbhotellet?
Webbhotellet använder PHP Version 4.4.2 och har FTP_PASSIVE_MODE = YES.
De uppgifter jag har för att manuellt hämta CSV-filen är:
(STARTMENYN) (KÖR) ftp https://www.foretagsnamn.no
Login: loginnamn
Password: pwnamn
För att hämta filen ge följande kommandon:
CD katalognamn
LCD c:\download (eller motsv lokal katalog där den hämtade filen skall hamna)
GET filnamn.csv
Hittade detta exempel: http://www.scriptygoddess.com/archives/2003/11/21/using-php-to-ftp-and-import-a-csv-file-into-a-database/
som jag försökte anpassa till ovanstående uppgifter, men misslyckades. Det händer ingenting, blir inte ens ett felmeddelande:
<?php
//FTP Hostname
$ftp_server = "www.foretagsnamn.no";
$ftp_username = "loginnamn";
$ftp_userpassword = "pwnamn";
//This is the name and location of the file you want downloaded to your local server
$local_file = "/usr/home/public_html/minkatalog/filnamn.csv";
//This is the name and location on your FTP server
//note that the starting directory is what would be available when you logged in via an FTP program. This was one thing that caused me a bit of confusion - because I had originally been placing the full server path here - but thats not what I see when I FTP in... notice the difference between this path and the local path above.
$server_file = "/katalognamn/filnamn.csv";
//connect to the server
$conn_id = ftp_connect($ftp_server) or die ("I couldn't connect to the ftp server");
if(!$conn_id){
echo "uppkopplingen misslyckades";
}else{
echo "Det lyckades?";
}
//login to the server
$login_result = ftp_login($conn_id, $ftp_username, $ftp_userpassword);
//get the file!
if (ftp_get($conn_id, $local_file, $server_file, FTP_ASCII)) {
//ftp_get can get files in ascii or binary,
//binary would have FTP_BINARY instead of FTP_ASCII
echo "got it!!";
} else {
echo "nope";
}
//close the FTP connection
ftp_close($conn_id);
?>
Det stod även detta i instruktionerna för hämtning av fil:
"Önskar man göra detta med automatik kan man använda script, enligt exempel:
ftp https://www.foretagsnamn.no -s:scriptfil.hej"
men det är väl bara en förenkling för att ladda hem filen lokalt?
Vore mycket glad om ni kunde ge mig en förklaring till varför det inte fungerar.
Finns det någon annan lösning för att få det att fungera automatisk, hela vägen?
Mycket tacksam för hjälp!
PiteCarina