di: Marco Bonzanini 11 Settembre 2009
Il caricamento di una foto richiede un permesso di tipo "write". Esistono sostanzialmente due tipi di permessi: sincrono e asincrono. Il primo prevede che l'applicazione, e quindi di riflesso l'utente, rimanga in attesa fino a che il caricamento non sia completato. Il secondo, invece, consente di proseguire l'esecuzione dell'applicazione senza attendere la fine del caricamento, ma richiede ovviamente di effettuare dei controlli successivi per verificare che il caricamento stesso sia andato a buon fine. Dal punto di vista del codice, il caricamento sincrono è leggermente più semplice da gestire ed è quello che proponiamo nell'esempio.
La funzione da utilizzare è sync_upload() che richiede come primo parametro, l'unico obbligatorio, il percorso del file immagine, che dovrà quindi essere presente sul nostro server. Se decidiamo di consentire all'utente il caricamento di una propria foto, potremmo decidere di salvarlo sul nostro server, utilizzando una classica procedura di upload, oppure possiamo girare il file direttamente a Flickr, sfruttando una procedura simile alla seguente:
<?php
$api_key = 'mia-api-key';
$api_secret = 'mio-segreto-condiviso';
require_once('phpflickr/phpFlickr.php');
$flickr = new phpFlickr($api_key, $api_secret);
$flickr->auth('write');
if (isset($_POST['submit'])) {
// Non ho caricato la foto
if (!isset($_FILES['foto'])) {
echo 'Non hai inserito la foto<br />';
}
else {
// Titolo e descrizione fittizi
$title = 'La mia foto';
$description = 'Foto caricata tramite Flickr API';
if ($id = $flickr->sync_upload($_FILES['foto']['tmp_name'], $title, $description)) {
echo 'Foto caricata: <a href="http://www.flickr.com/photos/me/' . $id . '">vedi</a><br />';
}
else {
echo 'Caricamento non riuscito<br />';
}
}
}
echo '<form method="post" enctype="multipart/form-data">
Carica foto: <input type="file" name="foto" />
<input type="submit" name="submit" value="Carica" />
</form>';
?>
La procedura stampa un banale modulo per effettuare il caricamento della foto. Sfruttando $_FILES['foto']['tmp_name'] andiamo a pescare il file temporaneo che viene caricato sul nostro server, senza effettuarne quindi il salvataggio, e lo spediamo direttamente a Flickr. In un'applicazione reale, potremmo invece avere la necessità di salvare il file sul nostro server prima di mandarlo a Flickr. In ogni caso, la funzione sync_upload() richiede come primo parametro il percorso del file da caricare. I parametri successivi sono tutti facoltativi, e sono, nell'ordine:
La funzione restituisce false in caso di errore, oppure l'identificativo della foto appena caricata. Tramite questo identificativo, possiamo costruire l'URL della foto, che è nella forma: http://www.flickr.com/photos/me/{id_foto} dove "me" è un alias che rappresenta il nome dell'utente correttamente autenticato.
Tutte le altre possibilità offerte dalla Flickr API sono descritte nella documentazione ufficiale. In sostanza, ogni operazione eseguibile tramite il sito, è disponibile anche tramite l'API. Ecco quindi che potremmo voler modificare i dati delle nostre foto, aggiungere o togliere tag, aggiungere riferimenti geografici e via dicendo. La lettura della documentazione ufficiale è quindi d'obbligo per avere una visione d'insieme, mentre l'uso di phpFlickr, come abbiamo visto, ci semplifica notevolmente il lavoro visto che la sintassi delle sue funzioni rispecchia la struttura offerta dall'API.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |