安卓端同时上传图片和文字,服务器端接收(二)
来源:互联网 发布:js点赞心形动态效果 编辑:程序博客网 时间:2024/06/05 07:53
之前写过一篇(一),代码过于复杂,这次用新的方式实现同样的功能。
Android端主要通过OkHttp3实现上传
private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); private final OkHttpClient client = new OkHttpClient(); public String upload(String imageType,String userPhone,File file) throws NetworkException{ RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("file", "head_image", fileBody) .addFormDataPart("name", "name") .addFormDataPart("email", "email") .build(); Request request = new Request.Builder() .url("http://xxxxx") .post(requestBody) .build(); Response response; try { response = client.newCall(request).execute(); String json = response.body().string(); System.out.println(json); if (response.isSuccessful()) { System.out.println("上传成功"); } else { System.out.println("上传失败"); } } catch (IOException e) { e.printStackTrace(); } return null; }
服务器端代码:
/** * 移动端上传数据和图片 * @param request * @return */ @PostMapping(value = "upload") @ResponseBody public String mobileUpload(HttpServletRequest request){ JSONObject jsonObject = new JSONObject(); //创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); Upload upload = new Upload(); try{ String name = request.getParameter("name"); String email = request.getParameter("email"); logger.info(name); logger.info(email); }catch (Exception e){ e.printStackTrace(); return jsonObject.toString(); } try{ //上传图片部分// List<String> imgs = new ArrayList<String>(); if(multipartResolver.isMultipart(request)) { //转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multiRequest.getFileMap(); Iterator<String> fileNameIterator = fileMap.keySet().iterator(); //上传路径 File filedir = new File(UploadFileUtil.MOBILE_IMAGE_DIR); if (!filedir.exists() && !filedir.isDirectory()){ filedir.mkdirs(); } //获取到图片且必须一张 if (fileNameIterator.hasNext()) { MultipartFile file = fileMap.get(fileNameIterator.next()); if (file.isEmpty() || file.getSize() == 0) { } String [] strings = file.getContentType().split("/"); String type = strings[1]; logger.info("图片类型:" + type); //重命名上传后的文件名 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String fileName = sdf.format(date) + "." + type; logger.info("文件名称为:"+fileName); //定义上传路径 File localFile = new File(UploadFileUtil.MOBILE_IMAGE_DIR + fileName); file.transferTo(localFile); System.out.println("上传路径为:" +localFile.getPath()); //设置图片路径 upload.setUploadResourceURL(localFile.getPath()); } else { //没有上传图片的话,则抛出异常 throw new Exception("未上传图片"); } } } catch (Exception e){ jsonObject.put("result",false); jsonObject.put("msg",e.getMessage()); return jsonObject.toString(); } jsonObject.put("result",true); jsonObject.put("msg","success"); return jsonObject.toString(); }
阅读全文
0 0
- 安卓端同时上传图片和文字,服务器端接收(二)
- 安卓端同时上传文字和图片到服务器,服务器接收并处理
- 同时上传图片与文字
- Android 上传文件,图片。以及服务器端接收相关(转载)。
- asp 批量同时上传文字和图片的实现。
- asp 批量同时上传文字和图片的实现。
- Thinkphp3.2图片上传服务器端接收
- 表单图片文字同时上传的解决方法
- 上传图片和文字
- 关于客户端上传图片和文字,服务器对上传的数据的接收和图片压缩处理
- Android 上传文件,图片。以及服务器端接收相关
- Android 上传文件,图片。以及服务器端接收相关
- Android 上传文件,图片。以及服务器端接收相关。
- Android 上传文件,图片。以及服务器端接收相关。
- Android 上传文件,图片。以及服务器端接收相关。
- Android 上传文件,图片。以及服务器端接收相关
- Android 上传文件,图片。以及服务器端接收相关。
- Android 上传文件,图片。以及服务器端接收相关。
- 服务器.htaccess 详解
- Linux IO模式
- 辞职半个多月了,上一篇是我在那公司的最后一篇。
- servlet图片验证码的实现
- 在Eclipse上安装各类插件集合
- 安卓端同时上传图片和文字,服务器端接收(二)
- 数据结构——基本概念
- Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper
- js十大排序算法
- redis实现分布式锁
- AngularJS 与 Bootstrap 的结合实例
- step by step
- leetcode restore ip address Java实现
- 鼠标突然无反应,鼠标灯亮,鼠标灯不亮