共 1 篇文章

标签:安卓上传多图至PHP服务器教程分享 (android上传多张图片到php服务器)

安卓上传多图至PHP服务器教程分享 (android上传多张图片到php服务器)

随着移动互联网的发展,现在的手机越来越强大,不仅可以看视频、玩游戏,还可以进行图片上传等操作。在很多项目中,我们需要上传多张图片到服务器,因此,本文就来分享一下安卓上传多图至PHP服务器的实现方法。 1. 准备工作 我们需要在服务器上搭建一个PHP服务端,用于接收安卓端发送的多张图片。我们可以使用LAMP或者XAMPP等工具来搭建一个本地服务器进行测试,也可以购买云服务器进行部署。 在安卓端,我们需要准备好以下两个类库: (1)okhttp:是一个网络请求库,可以帮助我们快速发送HTTP请求,并且支持文件上传、流式上传等操作。 (2)Matisse:一个高度可定制的多媒体选择器,支持图片、视频等多种媒体选择,具有强大的图片处理功能。 2. 实现步骤 在安卓端,我们需要先通过Matisse选择多张图片,然后将它们转换成文件流,最后使用okhttp将文件流上传至PHP服务器。 (1)使用Matisse库选择图片 Matisse库比系统的图片选择器更加高效和美观,我们可以引入依赖,然后在activity中使用下面的代码选择图片: “`java private static final int REQUEST_CODE_CHOOSE = 23; Matisse.from(MnActivity.this) .choose(MimeType.ofAll()) // 选择全部类型的媒体 .countable(true) // 显示多选个数 .maxSelectable(9) // 最多选择9张 .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRT) .thumbnlScale(0.85f) .imageEngine(new GlideEngine()) // 使用Glide引擎加载图片 .forResult(REQUEST_CODE_CHOOSE); // 设置请求码 “` (2)将文件流转换成RequestBody 选择图片后,我们需要将它们转换成文件流,然后使用okhttp发送HTTP请求,可以通过下面的方法将文件流转换成RequestBody: “`java /** * 将inputStream转换成RequestBody * * @param inputStream 文件流 * @param fileName 文件名 * * @return RequestBody */ public static RequestBody createRequestBody(InputStream inputStream, String fileName) { // 将输入流转换为字节数组输出流 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int len; byte[] buffer = new byte[BUFFER_SIZE]; try { while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } } catch (IOException e) { e.printStackTrace(); } // 将字节数组输出流转换为RequestBody return RequestBody.create(MediaType.parse(MULTIPART_FORM_DATA), outputStream.toByteArray()); } “` (3)使用okhttp上传文件流 将文件流转换成RequestBody后,我们就可以使用okhttp发送HTTP请求将文件上传至服务器了。下面是一个示例代码,可以将多个文件上传至服务器: “`java private static final String UPLOAD_URL = “http://yourserver.com/upload.php”;...

技术分享