как загружать фотографии в приложения Facebook, используя форму multipart / form-data - PullRequest
0 голосов
/ 27 сентября 2010

В последнее время я работаю с приложением facebook, но в любом случае Facebook не поддерживает отправку формы с $ _FILES, так что я не могу загрузить любой файл с помощью обычной системы загрузки файлов php.Сейчас я пытаюсь использовать загрузку файла с указанием URL-адреса файла для загрузки его в новый созданный фотоальбом.

Есть ли какое-либо простое предложение, чтобы пользователь мог загружать фотографии со своего компьютера с помощью моего приложения?

Заранее спасибо!phpfarmer

Ответы [ 2 ]

5 голосов
/ 27 сентября 2010

Я думаю, это поможет вам <<a href="/999814/zagruzit-izobrazhenie-s-pomoschy-facebook-api"> ссылка > для дальнейшего ознакомления перейдите по этой <<a href="http://www.merchantos.com/makebeta/facebook/facebook-php-tutorial/" rel="nofollow noreferrer"> ссылке >

0 голосов
/ 09 марта 2015

наконец-то мой код работает, Facebook не подчиняется стандарту rfc, что приводит к путанице

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();

кстати, bFile - это байтовый массив растрового изображения

...