Php 如何在android中向服务器发送图像
我正在开发一个android应用程序,可以将图片发送到远程服务器,但我发现了错误 错误是Php 如何在android中向服务器发送图像,php,android,Php,Android,我正在开发一个android应用程序,可以将图片发送到远程服务器,但我发现了错误 错误是 11-24 13:25:30.848: E/org.json.JSONException(2386): Value <br of type java.lang.String cannot be converted to JSONObject 11-24 13:25:30.848: E/org.json.JSONException(2386): org.json.JSONException: Value
11-24 13:25:30.848: E/org.json.JSONException(2386): Value <br of type java.lang.String cannot be converted to JSONObject
11-24 13:25:30.848: E/org.json.JSONException(2386): org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
11-24 13:25:30.848: E/org.json.JSONException(2386): at org.json.JSON.typeMismatch(JSON.java:107)
11-24 13:25:30.848: E/org.json.JSONException(2386): at org.json.JSONObject.<init>(JSONObject.java:158)
11-24 13:25:30.848: E/org.json.JSONException(2386): at org.json.JSONObject.<init>(JSONObject.java:171)
11-24 13:25:30.848: E/org.json.JSONException(2386): at com.isummation.imageupload.ImageUpload$ImageUploadTask.onPostExecute(ImageUpload.java:201)
11-24 13:25:30.848: E/org.json.JSONException(2386): at com.isummation.imageupload.ImageUpload$ImageUploadTask.onPostExecute(ImageUpload.java:1)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.os.AsyncTask.finish(AsyncTask.java:417)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.os.AsyncTask.access$300(AsyncTask.java:127)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.os.Looper.loop(Looper.java:150)
11-24 13:25:30.848: E/org.json.JSONException(2386): at android.app.ActivityThread.main(ActivityThread.java:4263)
11-24 13:25:30.848: E/org.json.JSONException(2386): at java.lang.reflect.Method.invokeNative(Native Method)
11-24 13:25:30.848: E/org.json.JSONException(2386): at java.lang.reflect.Method.invoke(Method.java:507)
11-24 13:25:30.848: E/org.json.JSONException(2386): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-24 13:25:30.848: E/org.json.JSONException(2386): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-24 13:25:30.848: E/org.json.JSONException(2386): at dalvik.system.NativeStart.main(Native Method)
上面的代码有什么问题?对于存储图像,您可以通过添加以下行将其转换为base64格式:
String strData = Base64.encodeToString(data, Base64.DEFAULT);
entity.addPart("file", strData);
对于PHP端,您可以执行以下操作:
$fp = fopen( $output_file, "wb" );
fwrite( $fp, base64_decode( $strData) );
fclose( $fp );
其中$strData是base64编码字符串,错误不在这些方法中,而是在
ImageUpload.java
,第201行。我已经更新了代码,请看完它,您在onPostExecute()
中处理的响应似乎不是一个只包含JSON数据的字符串。在调试器中查看sResponse
。您认为解决该错误的最佳方法是什么
String strData = Base64.encodeToString(data, Base64.DEFAULT);
entity.addPart("file", strData);
$fp = fopen( $output_file, "wb" );
fwrite( $fp, base64_decode( $strData) );
fclose( $fp );