OKHttpを使ってjpegファイルをサーバにアップロード出来るようになったのでコードを載せておきます。
コメントが付いている部分だけ変更すればとりあえず動くはずです。コメント無いところはおまじないです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//POSTするファイルのパスを引数として貰っている protected String doInBackground(String... ImagePath) { //ポスト先のURL String url = "xxx/xxx.php"; File file = new File(ImagePath[0]); //ここでPOSTする内容を設定 "image/jpg"の部分は送りたいファイルの形式に合わせて変更する RequestBody requestBody = new MultipartBuilder() .type(MultipartBuilder.FORM) .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/jpg"), file)) .build(); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .post(requestBody) .build(); String result=""; try { Response response = client.newCall(request).execute(); if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); { result = response.body().string(); } } catch (Exception e) {} return result: } |
サーバ側のPHP
ファイルを受け取ったら自身と同じディレクトリに保存する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php header("Content-Type: text/html; charset=UTF-8"); if( isset( $_FILES["file"] ) ) { if( $_FILES["file"]["error"] == UPLOAD_ERR_OK ) { $tmp_name = $_FILES["file"]["tmp_name"]; $name = $_FILES["file"]["name"]; move_uploaded_file( $tmp_name, "./$name" ); echo "ファイルがアップロードされました"; } } else echo "ファイルがアップロードされてません"; ?> |