Android将图片上传到php服务器的实例代码

发布时间 - 2026-01-11 02:32:54    点击率:

layout中很普通,就是两个button和一个ImageView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  >
  <Button
    android:id="@+id/test"
    android:layout_width="368dp"
    android:layout_height="wrap_content"
    android:text="button1"
    android:textAllCaps="false" />
  <Button
    android:id="@+id/test2"
    android:layout_width="368dp"
    android:layout_height="wrap_content"
    android:text="button2"
    android:textAllCaps="false"
    />
  <ImageView
    android:id="@+id/image"
    android:layout_width="0dp"
    android:layout_height="495dp"
    />
</LinearLayout>

在主页面中给按钮添加事件:

package success.xiaoyu.okhttp3;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
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 button1,button2;
  private ImageView imageView;
  private Handler handler = new Handler(){
    public void handleMessage(Message msg) {
      Bitmap bitmap = (Bitmap)msg.obj;
      imageView.setImageBitmap(bitmap);
      //Toast.makeText(MainActivity.this, Environment.getExternalStorageDirectory()+"",Toast.LENGTH_LONG).show();
    }
  };
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);
    button1 = (Button)findViewById(R.id.test);
    button2 = (Button)findViewById(R.id.test2);
    imageView = (ImageView)findViewById(R.id.image);
    button1.setOnClickListener(new View.OnClickListener() {//将服务器的图片读取到本地
      public void onClick(View view) {
        OkHttpClient okHttpClient = new OkHttpClient();
        Request request = new Request.Builder()
                .url("http://115.159.217.226/xy.png")
                 .build();
        okHttpClient.newCall(request).enqueue(new Callback() {
          public void onFailure(Call call, IOException e) {
          }
          public void onResponse(Call call, Response response) throws IOException {
            InputStream inputStream = response.body().byteStream();
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            Message msg = new Message();
            msg.obj = bitmap;
            handler.sendMessage(msg);
          }
        });
      }
    });
    button2.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        uploadMultiFile();
      }
    });
  }
  private void uploadMultiFile() {//将图片发送到服务器
    final String url = "http://115.159.217.226/upload.php";
    File file = new File( Environment.getExternalStorageDirectory()+"/storage/emulated/0/", "xy.jpg");
    RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"), file);
    File file2 = new File( Environment.getExternalStorageDirectory()+"/storage/emulated/0/", "yyw.jpg");
    RequestBody fileBody2 = RequestBody.create(MediaType.parse("application/octet-stream"), file2);
    RequestBody requestBody = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("image1", "xy.jpg", fileBody)
        .addFormDataPart("image2", "yyw.jpg", fileBody2)
        .build();
    Request request = new Request.Builder()
        .url(url)
        .post(requestBody)
        .build();
    final okhttp3.OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder();
    OkHttpClient okHttpClient = httpBuilder
        //设置超时
        .connectTimeout(10, TimeUnit.SECONDS)
        .writeTimeout(15, TimeUnit.SECONDS)
        .build();
    okHttpClient.newCall(request).enqueue(new Callback() {
      @Override
      public void onFailure(Call call, IOException e) {
        Log.e("aa", "uploadMultiFile() e=" + e);
      }
      @Override
      public void onResponse(Call call, Response response) throws IOException {
        Log.i("bb", "uploadMultiFile() response=" + response.body().string());
      }
    });
  }
}

服务器端代码:

  <?php
   header('Content-type: application/json;charset=utf-8');
if(empty($_FILES)) die('{"status":0,"msg":"错误提交"}');
$dirPath = './img/';//设置文件保存的目录
if(!is_dir($dirPath)){
  //目录不存在则创建目录
  @mkdir($dirPath);
}
$count = count($_FILES);//所有文件数
if($count<1) die('{"status":0,"msg":"错误提交"}');//没有提交的文件
$success = $failure = 0;
foreach($_FILES as $key => $value){
  //循环遍历数据
  $tmp = $value['name'];//获取上传文件名
  $tmpName = $value['tmp_name'];//临时文件路径
  //上传的文件会被保存到php临时目录,调用函数将文件复制到指定目录
  if(move_uploaded_file($tmpName,$dirPath.date('YmdHis').'_'.$tmp)){
    $success++;
  }else{
    $failure++;
  }
}
$arr['status'] = 1;
$arr['msg']   = '提交成功';
$arr['success'] = $success;
$arr['failure'] = $failure;
echo json_encode($arr);
  ?>

总结

以上所述是小编给大家介绍的Android将图片上传到php服务器的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # 图片上传  # php  # 服务器  # Android读取服务器图片的三种方法  # Android 通过Base64上传图片到服务器实现实例  # Android 通过webservice上传多张图片到指定服务器详解  # Android选择图片或拍照图片上传到服务器  # Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法  # Android Socket服务端与客户端用字符串的方式互相传递图片的方法  # Android使用post方式上传图片到服务器的方法  # Android异步上传图片到PHP服务器  # Android从服务器获取图片的实例方法  # android传送照片到FTP服务器的实现代码  # 小编  # 上传  # 在此  # 遍历  # 给大家  # 不存在  # 发送到  # 所述  # 给我留言  # 感谢大家  # 临时文件  # 中很  # 疑问请  # 有任何  # io  # widget  # TimeUnit  # View  # concurrent 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何在香港服务器上快速搭建免备案网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何用PHP快速搭建高效网站?分步指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何在Windows服务器上快速搭建网站?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Python正则表达式进阶教程_复杂匹配与分组替换解析  JavaScript常见的五种数组去重的方式  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  phpredis提高消息队列的实时性方法(推荐)  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  详解jQuery停止动画——stop()方法的使用  Laravel如何升级到最新版本?(升级指南和步骤)  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在云服务器上快速搭建个人网站?  🚀拖拽式CMS建站能否实现高效与个性化并存?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在云主机快速搭建网站站点?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  网站制作软件有哪些,制图软件有哪些?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  魔方云NAT建站如何实现端口转发?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel如何生成URL和重定向?(路由助手函数)  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  浅谈javascript alert和confirm的美化  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  网站优化排名时,需要考虑哪些问题呢?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  微信小程序 五星评分(包括半颗星评分)实例代码  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  java中使用zxing批量生成二维码立牌