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模型关联查询教程_Laravel Eloquent一对多关联写法
javascript读取文本节点方法小结
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
,网页ppt怎么弄成自己的ppt?
如何在IIS7中新建站点?详细步骤解析
如何在万网主机上快速搭建网站?
Android利用动画实现背景逐渐变暗
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何快速使用云服务器搭建个人网站?
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
香港网站服务器数量如何影响SEO优化效果?
Laravel如何实现事件和监听器?(Event & Listener实战)
Linux系统命令中screen命令详解
如何快速上传建站程序避免常见错误?
Mybatis 中的insertOrUpdate操作
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
再谈Python中的字符串与字符编码(推荐)
Swift中switch语句区间和元组模式匹配
微信小程序 canvas开发实例及注意事项
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
高防服务器租用指南:配置选择与快速部署攻略
Android okhttputils现在进度显示实例代码
免费网站制作appp,免费制作app哪个平台好?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
🚀拖拽式CMS建站能否实现高效与个性化并存?
Python3.6正式版新特性预览
什么是javascript作用域_全局和局部作用域有什么区别?
如何快速搭建支持数据库操作的智能建站平台?
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel如何创建自定义中间件?(Middleware代码示例)
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Laravel中的Facade(门面)到底是什么原理
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
网站建设保证美观性,需要考虑的几点问题!
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
利用JavaScript实现拖拽改变元素大小
如何利用DOS批处理实现定时关机操作详解

