2010-09-27 5 views
0

Récemment, je travaille avec une application facebook mais de toute façon facebook ne supporte pas le formulaire de poste avec $ _FILES, de sorte que je ne peux pas télécharger de fichier avec php téléchargement de fichiers réguliers système. Maintenant, j'essaie d'utiliser le téléchargement de fichiers avec l'emplacement de l'URL du fichier pour le télécharger dans un nouvel album photo créé.comment télécharger des photos sur facebook applications en utilisant formulaire multipart/form-data

Y at-il une suggestion facile afin que l'utilisateur peut télécharger des photos de son ordinateur en utilisant mon application?

Merci d'avance! phpfarmer

Répondre

5

Je pense que cela va vous aider < link> pour référence ultérieure suivre cette < link>

+0

sur args $ post [ 'Lenna.png'] = "@/home/tho ai/htdocs/apps/bemyfans/Lenna.png "; est un emplacement d'image prédéfini mais je veux que quelque chose puisse télécharger une image depuis son ordinateur en utilisant le type d'entrée de fichier. – phpfarmer

0

enfin mon code fonctionne, facebook n'a pas obéi à la norme rfc, qui conduisent à la confusion

final String BOUNDERY = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f"; 
final String CRLF = "\r\n"; 
StringBuilder sbBody_1 = new StringBuilder(); 
sbBody_1.append("--" + BOUNDERY + CRLF); 
sbBody_1.append("Content-Disposition: form-data; filename=\"source\"" + CRLF); 
sbBody_1.append(CRLF); 
StringBuilder sbBody_2 = new StringBuilder(); 
sbBody_2.append(CRLF + "--" + BOUNDERY + "--"); 
URL url = new URL("https://graph.facebook.com/me/photos?access_token=" + accessToken); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput(true); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDERY); 
connection.setChunkedStreamingMode(0); 
OutputStream out = new BufferedOutputStream(connection.getOutputStream()); 
out.write(sbBody_1.toString().getBytes()); 
out.write(bFile); 
out.write(sbBody_2.toString().getBytes()); 
out.close(); 
BufferedReader bips = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
String temp = null; 
while ((temp = bips.readLine()) != null) { 
    Log.d("fbnb", temp); 
} 
bips.close(); 
connection.disconnect(); 

par ailleurs, BFILE est le tableau d'octets du bitmap

Questions connexes