Android上传图片到服务器的代码怎么写(Android客户端代码和服务端代码)
来源:互联网 发布:java局部变量重复 编辑:程序博客网 时间:2024/04/30 22:41
第一点:Android端代码先引入权限
//网络权限<uses-permission android:name="android.permission.INTERNET"></uses-permission>//相册权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
第二点:Android端在build.gradle里面引入依赖注入
//ok_go的依赖//必须使用compile 'com.lzy.net:okgo:3.0.4'
第三点:建立一个将uri转成url的类
public class Utils { /** * 这个是将跳转到相册返回的uri转换成写文件或者读成文件的url的,就是new File(url)时候,不能使用uri * * @param context 上下文对象 * @param uri 当我们跳转到相册时候给我们返回来的地址,例如 content://media/external/images/media/124238 * @return data 返回一个字符串,这个字符串就是真实的地址 */ public static String getRealFilePath(final Context context, final Uri uri) { if (null == uri) return null; final String scheme = uri.getScheme(); String data = null; if (scheme == null) data = uri.getPath(); else if (ContentResolver.SCHEME_FILE.equals(scheme)) { data = uri.getPath(); } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) { Cursor cursor = context.getContentResolver().query(uri, new String[]{MediaStore.Images.ImageColumns.DATA}, null, null, null); if (null != cursor) { if (cursor.moveToFirst()) { int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); if (index > -1) { data = cursor.getString(index); } } cursor.close(); } } return data; }}
第四点:随便你定义一个按钮button进行提交图片使用匿名内部类的方式进行上传图片的方法
//真正的提交addProjectLL.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { OkGo.<String>post(BASE_HOSE + "/pic/upload")// .tag(this)// .isMultipart(true) .params("uploadFile", new File(realFilePath)) .execute(new StringCallback() { @Override public void onSuccess(Response<String> response) { Toast.makeText(getActivity(), response.body().toString(), Toast.LENGTH_SHORT).show(); } }); } });
第五点:服务端的代码首先要有多媒体解析,所以要在Spring的配置文件中配置多媒体解析器
<!-- 配置多媒体解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
第六点:服务器端Web层的代码编写
@Controller
public class PicturController {
@Value("${IMAGE_SERVER_URL}")
private String IMAGE_SERVER_URL;
@Autowired
private HttpServletRequest request;
@RequestMapping("/pic/upload")
@ResponseBody
public Map uploadFile(MultipartFile uploadFile) {
// 把图片上传到图片服务器,
try {
FastDFSClient fastDFSClient = new FastDFSClient(
"classpath:conf/client.conf");
String originalFilename = uploadFile.getOriginalFilename();
String extName = originalFilename.substring(originalFilename
.lastIndexOf(".") + 1);
// 取文件扩展名
String url = fastDFSClient.uploadFile(uploadFile.getBytes(),
extName);
url = IMAGE_SERVER_URL + url;
System.out.println(url);
Map result = new HashMap<>();
result.put("error", 0);
result.put("url", url);
return result;
} catch (Exception e) {
e.printStackTrace();
Map result = new HashMap<>();
result.put("error", 1);
result.put("message", "图片上传失败");
return result;
}
}
}
Android端代码地址https://github.com/lovepaul/e3mall_m.git
- Android上传图片到服务器的代码怎么写(Android客户端代码和服务端代码)
- Android图片上传的客户端和服务端代码
- 最原始的android上传图片到服务器代码(包括客户端和服务器端)
- android上传大文件到服务器客户端和服务器端代码
- android上传图片到服务器,android的Activity和服务器那边的完整代码
- Android上传文件到服务器的代码
- Android studio怎么上传代码到Conding
- android客户端和java服务端之间用socket来传输图片(示例代码)
- android客户端和java服务端之间用socket来传输图片(示例代码)
- Android文件上传至tomcat,服务端+客户端示例代码
- android 上传文件到服务器代码实例
- android 上传文件到服务器代码实例
- 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)
- Android-使用TCP/IP协议实现断点上传(客户端-服务端代码)(+0)
- Android中图片上传服务器(android端和服务端)
- android WebView上传文件到服务器[android+server代码]
- Android上传图片关键代码
- Android写文件到SDCard的一般过程和代码
- Oracle基础
- 逻辑回归详解
- 遍历map
- Aspose表格excel添加图片,并且给图片添加链接
- 连接到Internet的方式
- Android上传图片到服务器的代码怎么写(Android客户端代码和服务端代码)
- 集群定时任务执行多次
- docker常用命令汇集
- MVVM示例讲解
- jsonp实现ajax跨域访问解决方案-java
- CodeNovice第一次写博客
- bindService的使用方法
- 51nod 1384 全排列 【递归】
- 实现一个函数把字符串中的每个空格替换成“20%”