欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android?studio實現(xiàn)上傳圖片到java服務器

 更新時間:2022年08月11日 16:07:38   作者:勇敢的小提莫  
這篇文章主要為大家詳細介紹了android?studio實現(xiàn)上傳圖片到java服務器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了android studio上傳圖片到java服務器的具體代碼,供大家參考,具體內容如下

1.build.gradle配置(增加)

dependencies{
?? ??implementation 'com.squareup.okhttp3:okhttp:4.9.0'
? ? ?implementation 'org.conscrypt:conscrypt-android:2.5.1'
?? ??? ?}

2.AndroidManifest.xml配置權限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在application里面添加android:usesCleartextTraffic="true"

3.安卓前端部分

3.1xml樣式界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? xmlns:app="http://schemas.android.com/apk/res-auto"
? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent"
? ? android:orientation="vertical"
? ? >

? ? <Button
? ? ? ? android:id="@+id/btn"
? ? ? ? android:layout_width="150dp"
? ? ? ? android:layout_height="100dp"
? ? ? ? android:text="上傳"/>

</LinearLayout>

3.2安卓后臺代碼MainActivity

package com.example.upload;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


import org.json.JSONException;
import org.json.JSONObject;

import java.io.File;
import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {

? ? private Button btn;

? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? btn = findViewById(R.id.btn);
? ? ? ? btn.setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(View view) {
? ? ? ? ? ? ? ? String result = "{\"data\": \"0\"}";
? ? ? ? ? ? ? ? new Thread(new Runnable(){
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void run() {

? ? ? ? ? ? ? ? ? ? ? ? String img = Environment.getExternalStorageDirectory()+"/1/123456789.png";
? ? ? ? ? ? ? ? ? ? ? ? String url = "http://192.168.0.103:8019/uploadAudio";
? ? ? ? ? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ? ? ? ? uploadImage(url,img);
? ? ? ? ? ? ? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? Looper.prepare();
? ? ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? ? ? ? ? Looper.loop();
? ? ? ? ? ? ? ? ? ? ? ? } catch (JSONException e) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? //創(chuàng)建信息對象
? ? ? ? ? ? ? ? ? ? ? ? Message message = Message.obtain();
? ? ? ? ? ? ? ? ? ? ? ? Bundle bundle = new Bundle();
? ? ? ? ? ? ? ? ? ? ? ? bundle.putString("data",result);
? ? ? ? ? ? ? ? ? ? ? ? message.setData(bundle);//向主線程發(fā)信息
? ? ? ? ? ? ? ? ? ? ? ? addTrackHandler.sendMessage(message);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }).start();

? ? ? ? ? ? }
? ? ? ? });
? ? }

? ? /**
? ? ?* 上傳圖片
? ? ?* @param url
? ? ?* @param imagePath 圖片路徑
? ? ?* @return 新圖片的路徑
? ? ?* @throws IOException
? ? ?* @throws JSONException
? ? ?*/
? ? public static String uploadImage(String url, String imagePath) throws IOException, JSONException {
? ? ? ? OkHttpClient okHttpClient = new OkHttpClient();
? ? ? ? File file = new File(imagePath);
? ? ? ? RequestBody image = RequestBody.create(MediaType.parse("image/png"), file);
? ? ? ? RequestBody requestBody = new MultipartBody.Builder()
? ? ? ? ? ? ? ? .setType(MultipartBody.FORM)
? ? ? ? ? ? ? ? .addFormDataPart("file", imagePath, image)
? ? ? ? ? ? ? ? .build();
? ? ? ? Request request = new Request.Builder()
? ? ? ? ? ? ? ? .url(url)
? ? ? ? ? ? ? ? .post(requestBody)
? ? ? ? ? ? ? ? .build();
? ? ? ? Response response = okHttpClient.newCall(request).execute();
? ? ? ? JSONObject jsonObject = new JSONObject(response.body().string());
? ? ? ? return jsonObject.optString("image");
? ? }

? ? Handler addTrackHandler = new Handler(new Handler.Callback() {
? ? ? ? @Override
? ? ? ? public boolean handleMessage(Message message) {
? ? ? ? ? ? String result = "";
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? result = message.getData().getString("data");
? ? ? ? ? ? ? ? Toast.makeText(MainActivity.this, "新增成功", Toast.LENGTH_SHORT).show();
? ? ? ? ? ? }catch (Exception e){

? ? ? ? ? ? }
? ? ? ? ? ? //Toast.makeText(MainActivity.this, "調用成功"+result, Toast.LENGTH_SHORT).show();//測試彈框
? ? ? ? ? ? return true;
? ? ? ? }
? ? });

}

4.spring boot后臺接受圖片并寫入本地路徑

@RequestMapping("/uploadAudio")
? ? @ResponseBody
? ? public void uploadAudio(@RequestParam MultipartFile file) {
? System.out.println(file.getOriginalFilename());
? ? ? ? if (!file.isEmpty()) {
? ? ? ? ? ? String filename = file.getOriginalFilename();
? ? ? ? ? ? System.out.println("Load fn:" + filename);
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? String fileurl = "d:/Download/testt.png";
? ? ? ? ? ? ? ? File f = new File(fileurl);
? ? ? ? ? ? ? ? BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(f));
? ? ? ? ? ? ? ? if (!f.exists()) {
? ? ? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ? ? f.createNewFile();
? ? ? ? ? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? out.write(file.getBytes());
? ? ? ? ? ? ? ? out.flush();
? ? ? ? ? ? ? ? out.close();
? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }else {
? ? ? ? ? ? System.out.println("上傳失敗,因為文件是空的.");
? ? ? ? }
? ? }

注:如果上傳圖片提示沒有權限,則長按apk圖標,打開讀取本地文件的權限即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論