如何使用表单multipart / form-data上传Facebook应用上的照片

时间:2010-09-27 07:07:38

标签: upload facebook photo multipartform-data

最近我正在使用facebook应用程序,但无论如何facebook不支持带有$ _FILES的表单帖子,因此我无法使用php常规文件上传系统上传任何文件。 现在我正在尝试使用文件URL位置上传文件,将其上传到新创建的相册中。

是否有任何简单的建议,以便用户可以使用我的应用程序从他/她的计算机上传照片?

提前致谢! phpfarmer

2 个答案:

答案 0 :(得分:5)

我认为这会帮助你解决< link>如需进一步参考,请按照此< link>

进行操作

答案 1 :(得分:0)

最后我的代码工作,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是位图的字节数组

相关问题