Android – OkHttp
public class DBConvertor {
public static void send2Server(String url, File imageFile) {
RequestBody requestBody=null;
try {
requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("img",imageFile.getName(), RequestBody.create(MultipartBody.FORM, imageFile))
.build();
}catch (Exception e){
}
Log.d("ReviewImageUpload",requestBody.toString());
Request request = new Request.Builder().url(url)
.post(requestBody).build();
OkHttpClient client = new OkHttpClient();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("TEST : ", response.body().string());
}
});
}
}
PHP
<?php
$con = mysqli_connect("localhost", "DBID", "DBPASSWD", "DBNAME");
mysqli_query($con,'SET NAMES utf8');
$file= $_FILES['img'];
//이미지 파일을 영구보관하기 위해
//이미지 파일의 세부정보 얻어오기
$srcName= $file['name'];
$tmpName= $file['tmp_name']; //php 파일을 받으면 임시저장소에 넣는다. 그곳이 tmp
//임시 저장소 이미지를 원하는 폴더로 이동
$dstName= "../uploads/".date('Ymd_his').$srcName;
$result=move_uploaded_file($tmpName, $dstName);
$saveFile =date('Ymd_his').$srcName;
$handle = fopen($dstName,'rb');
$content = addslashes(fread($handle,filesize($dstName)));
$sql = "INSERT INTO dbname(image_name,image_blob) VALUES('$saveFile','$content');";
$res = mysqli_query($con,$sql);
// 접속 실패 시 메시지 나오게 하기
if (mysqli_connect_errno($con)) { echo "MySQL접속 실패: " . mysqli_connect_error(); }
// 기본 클라이언트 문자 집합 설정하기
mysqli_set_charset($con,"utf8");
// 결과를 배열로 변환하기 위한 변수 정의
mysqli_close($con);
?