Php 如何在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

我正在开发一个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 <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 );