我正在使用php编写脚本,以将图像上传到本地服务器。 用户将从Android应用程序上传图片,而我正在使用改造库来上传图片。我想返回在php中为图像生成的路径和名称,以便在android中进行进一步处理。问题是php脚本总是返回一个空的json
PHP脚本
<?php
if (isset($_POST['image'])) {
$upload_folder = "Signatures"; // Name of the folder.
$unique_name = microtime().uniqid(); // Name of the image. use time method to make it unique.
$path = "$upload_folder/$unique_name.jpg";
$Image = $_POST['image'];
if (file_put_contents($path,base64_decode($Image)) != false) {
$data = [ 'imagePath' => $path];
header('Content-type: application/json');
echo json_encode( $data );
exit;
}
else {
$data = [ 'imagePath' => 'No image path'];
header('Content-type: application/json');
echo json_encode( $data );
exit;
}
}
else {
$data = [ 'imagePath' => 'No image path'];
header('Content-type: application/json');
echo json_encode( $data );
exit;
}
?>
删除方法签名
@FormUrlEncoded
@POST ("Images.php")
Call<JSONObject> uploadImage (@Field("image") String image );
上传图片方法
public void uploadImage(){
String image = imageToString(signatureView.getSignatureBitmap());
IAPI iAPI = Application.getImage();
Call<JSONObject> call = iAPI.uploadImage(image);
call.enqueue(new Callback<JSONObject>() {
@Override
public void onResponse(Call<JSONObject> call, Response<JSONObject> response) {
if (response.isSuccessful()) {
Log.d("test" , "is succ");
try {
JSONObject responseJSON = response.body();
Log.d("test" , responseJSON.toString());
String path = responseJSON.getString("path");
if (path == null) {
Log.d("test" , "path is null");
} else {
Log.d("test" , "path not null");
}
} catch (JSONException e) {
Log.d("test" , e.toString());
e.printStackTrace();
}
} else {
Log.d("test" , "not succ");
}
}
@Override
public void onFailure(Call<JSONObject> call, Throwable t) {
Log.d("test", " in onFailure - load image :" + t.getMessage() + t.toString());
}
});
}
总是抛出一个异常,指出路径没有任何价值。 日志中的responseJSON.toString()会打印为空[]。
编辑:
我已经创建了自己的模型,其中包含名为imagePath的属性,现在它正在崩溃。谢谢大家