안드로이드 volley라이브러리를 통해서 프로필 이미지와 상태를 서버에 전송하는 기능을 개발중인데요 response값이 한칸 개행되서 값이 들어옵니다.
조회수 2570회
upload.php
<?php
@header('Content-Type:text/html; charset=UTF-8');
if($_SERVER['REQUEST_METHOD']=='POST'){
$image = $_POST['image'];
$msg = $_POST['msg'];
$ext = $_POST['extension'];
$email = $_POST['email'];
require_once('dbConnect.php');
$query = "SELECT name FROM member_plug where id='$email'";
$res = mysqli_query($con,$query);
$row = mysqli_fetch_array($res);
$name = $row['name'];
$query1 = "SELECT primary_num FROM member_plug where id='$email'";
$res = mysqli_query($con,$query1);
$row1 = mysqli_fetch_array($res);
$id = $row1['primary_num'];
$path = "profileImage/$name.$ext";
$actualPath = "http://rkdanswns88.esy.es/plug/$ path";
$query = "UPDATE member_plug SET profile_image = '$actualPath', profile_msg = '$msg' WHERE primary_num=$id";
if(mysqli_query($con,$query)){
file_put_contents($path,base64_decode($image));
echo trim("added complete!");
}
mysqli_close($con);
}else{
echo trim("Error");
}
?>
이다음에 안드로이드에서 upload.php사이트를 연결합니다.
private void uploadImg(){
final ProgressDialog dialog = ProgressDialog.show(this,"업로드중.. 잠시만 기달려주세요","Uploading",false);
StringRequest req = new StringRequest(Request.Method.POST, UPLOAD_URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
dialog.dismiss();
if(response.equals("Successful")){
Toast.makeText(SettingProfileActivity.this, "프로필 설정을 완료하였습니다.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(SettingProfileActivity.this,AfterLogin.class);
startActivity(intent);
finish();
}else if(response.equals("Error")){
Toast.makeText(SettingProfileActivity.this, "에러 발생, 어플리케이션 종료 후, 다시 시작하세요", Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
dialog.dismiss();
Log.e("ERR",error.getMessage().toString());
Toast.makeText(SettingProfileActivity.this, error.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String,String> getParams() throws AuthFailureError {
String image = getStringImg(bitmap);
String ext = EXT_STR;
String email = PreferencesUtil.getPreferences(SettingProfileActivity.this,"email");
String name = inputProfile.getText().toString().trim();
Map<String,String> params = new Hashtable<String,String>();
params.put(KEY_IMG,image);
params.put(KEY_MSG,name);
params.put(KEY_EXT,ext);
params.put(KEY_EM,email);
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(req);
}
통신은 성공적으로 되고, 데이터 전송도 성공적으로 되는데,
public void onResponse(String response) {
dialog.dismiss();
if(response.equals("Successful")){
Toast.makeText(SettingProfileActivity.this, "프로필 설정을 완료하였습니다.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(SettingProfileActivity.this,AfterLogin.class);
startActivity(intent);
finish();
}else if(response.equals("Error")){
Toast.makeText(SettingProfileActivity.this, "에러 발생, 어플리케이션 종료 후, 다시 시작하세요", Toast.LENGTH_SHORT).show();
}
}
여기에서 php의 output값을 응답값으로 받는 저 onResponse의 인자로 들어온 response값에 따른 경우들의 코드가 작동하지를 않습니다. 혹시나해서 editText로 값을 일부러 들어오게 하였더니 response값이 문자 끝에서 한칸 더 개행이 되어서 출력이 되게 됩니다. 혹시나해서 php에 trim함수를 써서 개행을 없애보려했지만 소용이 없습니다. 이게 무슨문제인가요..?
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력