Avatar billede jhni Nybegynder
07. december 2004 - 12:16 Der er 1 kommentar

Hjælp til download af billeder fra website

Jeg er ved at lave et website der benytter Amazons webservice. Da webservicen er meget langsom vil jeg gemme de mest eftersprugte produktinformationer i en lokal database, og produktbilleder på min server.

Jeg kan sagtens gemme produktinformationerne, men har et problem med at gemme billederne...

Nedenstående er en del af et script der forespørger Amazon omkring 10 produkter i en kategori, og herefter skal kopiere billedet til min server (amazon returnerer en url til et billede), samt oprette en record i mysql med produktinformationerne.

Jeg har forsøgt mig med FTP funktionen, men jeg har måske misforstået noget?

----------------------
// logininformationer til ftp
$server='<ftp server>';
$username='<brugernavn>';
$password='<adgangskode>';
       

// function to connect to FTP server
        function connect()
            {
            global $server, $username, $password;
            $conn = ftp_connect($server);
            ftp_login($conn, $username, $password);
            return $conn;
            }

   
// connect
$res = connect();

// svar fra amazon webservice
$results = $result[Items][TotalResults];

foreach ($result[Items][Item] as $item){
    $asin = $item[ASIN];
    $name = $item[ItemAttributes][Title];
    $type = $mode;
    $cat = $q;
    $price = $item[OfferSummary][LowestNewPrice][FormattedPrice];
    $upfile = $item[MediumImage][URL]; // url til produktbilledet hos Amazon
   
// sikre at der startes i det rigtige dir   
ftp_chdir($res, "/web/<sitenavn>/www/shop/img");

// her skulle filen blive uploadet, men det virker ikke!
$res_code = ftp_put($res, $upfile, $upfile, FTP_BINARY);


// check status and display
if ($res_code == 1)
{
$status = "Filen er nu oploadet :-) !";
} else {
$status = "Der skete en fejl i kopieringen!";
}
---------------------
Avatar billede dava Nybegynder
07. december 2004 - 14:05 #1
Nu ved jeg ikke hvilken streng der gemmes i $upfile, men hvis det er en hel URL går det nok ikke at bruge den som remote_file name.

Altså:
$res_code = ftp_put($res, $upfile, $upfile, FTP_BINARY);
Skal måske være noget ala:
$res_code = ftp_put($res, <et navn der ikke er en URL>, $upfile, FTP_BINARY);

- ved iøvrigt ikke om ftp_put understøtter server-to-server transfers... så måske den skal hentes ind lokalt før den kan uppes til din egen ftp server...?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester