Android 我如何发送到服务器没有图像截击?
这是我在服务器上发布两个字符串和一个图像的方法,这里我可以正确地发送数据,但是当我发送没有图像的数据时,我希望在所有情况下发送字符串和图像,有图像和没有图像Android 我如何发送到服务器没有图像截击?,android,android-volley,Android,Android Volley,这是我在服务器上发布两个字符串和一个图像的方法,这里我可以正确地发送数据,但是当我发送没有图像的数据时,我希望在所有情况下发送字符串和图像,有图像和没有图像 private void Posts() { final StringRequest StringRequest=新StringRequest(Request.Method.POST,uploadeImageUrl, 新的Response.Listener(){ @凌驾 公共void onResponse(字符串响应){ 试一试{ JSO
private void Posts()
{
final StringRequest StringRequest=新StringRequest(Request.Method.POST,uploadeImageUrl,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject JSONObject=新JSONObject(响应);
字符串响应=jsonObject.getString(“响应”);
Toast.makeText(Post.this,Response,Toast.LENGTH_LONG).show();
imagepost.setImageResource(0);
设置可见性(View.GONE);
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
})
{
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
params.put(“name”,editwriter.getText().toString().trim());
put(“postcontent”,editsubject.getText().toString().trim());
参数put(“imagepost”,imageToString(位图).trim());
返回参数;
}
};
getInstance(Post.this).addToRequestque(stringRequest);
}
能否添加imageToString(位图)的代码
编辑:
首先,向getParams()方法添加if语句,如下所示:
String imageString = imageToString(bitmap);
if(!imageString.equals("false")){
params.put("imagepost",imageToString(bitmap).trim());
}
$con= mysqli_connect($host_name,$user_name,$user_pass,$dp_name);
if($con){
date_default_timezone_set("Asia/Muscat");
$datee= date("Y/m/d");//strip_tags(trim($_POST["date"]));
$timee= date("h:i:sa");//strip_tags(trim($_POST["time"]));
$dt=date("Ymd");
$tm=date("his");
$name=$_POST['name'];
$postcontent=$_POST['postcontent'];
if(isset($_POST["image"])){
$imageChecker = TRUE;
$imagepost= $_POST["imagepost"];
$rnd = rand(0, 5000);
$imgname="imagepost".$dt.$tm.$rnd.".jpg";
$url = "http://devsinai.com/DrSiani/imageUploadPostDr/images/".$imgname;
$sql="INSERT INTO posts (name,postcontent,imagepost) VALUE ('$name','$postcontent','$url')";
} else {
$imageChecker = FALSE;
$sql="INSERT INTO posts (name,postcontent) VALUE ('$name','$postcontent')";
}
$uploads_path="images/$imgname";
if(mysqli_query($con,$sql)){
if($imageChecker)
file_put_contents($uploads_path,base64_decode($imagepost));
echo json_encode(array('response'=>'Successfully'));
} else {
echo json_encode(array('response'=>'fiald'));
}
}
mysqli_close($con);
当出现错误时,让imageToString方法以字符串形式返回“false”。
按如下方式编辑php脚本:
String imageString = imageToString(bitmap);
if(!imageString.equals("false")){
params.put("imagepost",imageToString(bitmap).trim());
}
$con= mysqli_connect($host_name,$user_name,$user_pass,$dp_name);
if($con){
date_default_timezone_set("Asia/Muscat");
$datee= date("Y/m/d");//strip_tags(trim($_POST["date"]));
$timee= date("h:i:sa");//strip_tags(trim($_POST["time"]));
$dt=date("Ymd");
$tm=date("his");
$name=$_POST['name'];
$postcontent=$_POST['postcontent'];
if(isset($_POST["image"])){
$imageChecker = TRUE;
$imagepost= $_POST["imagepost"];
$rnd = rand(0, 5000);
$imgname="imagepost".$dt.$tm.$rnd.".jpg";
$url = "http://devsinai.com/DrSiani/imageUploadPostDr/images/".$imgname;
$sql="INSERT INTO posts (name,postcontent,imagepost) VALUE ('$name','$postcontent','$url')";
} else {
$imageChecker = FALSE;
$sql="INSERT INTO posts (name,postcontent) VALUE ('$name','$postcontent')";
}
$uploads_path="images/$imgname";
if(mysqli_query($con,$sql)){
if($imageChecker)
file_put_contents($uploads_path,base64_decode($imagepost));
echo json_encode(array('response'=>'Successfully'));
} else {
echo json_encode(array('response'=>'fiald'));
}
}
mysqli_close($con);
请正确指定您的问题。在这种情况下,您不想发送图像?我希望有图像和没有图像两种情况,但如果我发送时没有图像,我可以只发送图像。没有数据转到服务器使用if条件在两种情况之间进行延迟,例如:if(imageToString(bitmap)!=null){params.put(“imagepost”,imageToString(bitmap.trim());}在imagesame问题的位置尝试使用空字符串。如果您能帮助plsi尝试对其发表评论,我将在服务器中使用php代码编辑问题,但我的帐户是新的,我没有任何评论、答案或问题。由于这个原因,当我试图写评论时,我无法在@lukkea写评论。一条弹出消息告诉我,我必须有50个声誉才能发表评论。谢谢您的通知。@IbrahimHusin您必须更改质量并降低(例如70)。并放入if语句检查位图if null是否返回“false”。我被编辑了我的答案。希望这对你有帮助。