Hướng dẫn upload image php mysqli - tải lên hình ảnh php mysqli
Hi các bạn trước khi bắt đầu bài viết các bạn chưa xem các bài viết trước có thể quay lại xem để hiểu hơn: Trước khi băt đầu bài viết để hiểu hơn về retrofit các bạn xem trước các bài viết này: Tìm Hiểu về Retrofit Sử dụng retrofit getdata Sử dụng retrofit post data Ở bài viết này mình sẽ hướng dẫn các bạn cách upload một image lên server sử dụng thư viện retrofit 2 theo cách mà mình hay làm. Lưu ý đây không phải cách dựa trên document của Retrofit 2 Cấu trúc project: Các thư viên hỗ trợ: Sử dụng thư viện ButterKnife compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compile 'com.jakewharton:butterknife:8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0' compile 'com.github.bumptech.glide:glide:3.7.0'
CREATE TABLE `imageupload`( `id` INT PRIMARY KEY AUTO_INCREMENT, `url` VARCHAR(50) NOT NULL, UNIQUE (id) ); 2. Viết trang PHP như sau 3. Tạo giao diện 4. Bắt đầu code
public interface APIUpload { @FormUrlEncoded @POST("upload-image.php") Call
public class Message implements Serializable{ @SerializedName("message") private String message; //contructor //getter/ setter }
Viết hàm checkpermistion cho android 6.0 //Check permistion android 6.0 private void checkPermistion() { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)) { } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); } } }
@OnClick(R.id.buttonChoose) public void chooseImage(){ checkPermistion(); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, 0); }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0 && resultCode == MainActivity.this.RESULT_OK) { PATH = RealPathUtil.getPath(MainActivity.this, data.getData()); Uri uri = Uri.fromFile(new File(PATH)); // Get name imgName = PATH.substring(PATH.lastIndexOf("/")+1); Toast.makeText(MainActivity.this, imgName, Toast.LENGTH_LONG).show(); try { //Get BitMap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri); } catch (IOException e) { e.printStackTrace(); } // Load image Glide.with(MainActivity.this).load(uri).override(420, 594).centerCrop().into(imageView); Toast.makeText(this, PATH, Toast.LENGTH_LONG).show(); } }
// Encode bitmap to String public String getBitMap(Bitmap bmp){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.JPEG, 50, baos); byte[] imageBytes = baos.toByteArray(); String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); return encodedImage; }
CREATE TABLE `imageupload`( `id` INT PRIMARY KEY AUTO_INCREMENT, `url` VARCHAR(50) NOT NULL, UNIQUE (id) );0
CREATE TABLE `imageupload`( `id` INT PRIMARY KEY AUTO_INCREMENT, `url` VARCHAR(50) NOT NULL, UNIQUE (id) );1 Kết quả: Check link tại đây: http://dev.androidcoban.com/blog/upload/ Vậy là xong tiến hành chạy và kiểm tra kết quả! Chúc các bạn thành công! |