最近我正在使用 facebook 应用程序,但无论如何 facebook 不支持使用 $_FILES 的表单发布,因此我无法使用 php 常规文件上传系统上传任何文件。现在我正在尝试使用带有文件 url 位置的文件上传将其上传到新创建的相册中。
是否有任何简单的建议,以便用户可以使用我的应用程序从他/她的计算机上传照片?
提前致谢!phpfarmer
最近我正在使用 facebook 应用程序,但无论如何 facebook 不支持使用 $_FILES 的表单发布,因此我无法使用 php 常规文件上传系统上传任何文件。现在我正在尝试使用带有文件 url 位置的文件上传将其上传到新创建的相册中。
是否有任何简单的建议,以便用户可以使用我的应用程序从他/她的计算机上传照片?
提前致谢!phpfarmer
最后我的代码工作了,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 是位图的字节数组