android 4.0-Okhttp上传多图,大于4.5M失败

问题描述

Okhttp上传多图,大于4.5M失败

小一点的图片可以上传成功,大了在onResponse中输出是一个404页面,有没有小伙伴知道怎么解决,或者有图片上传的框架,多谢了,下面是我用的上传代码

 public static String uploadImages(int parameter, String url,
            Map<String, String> map, List<String> paths, final Handler handler) {

        // 参数类型
        MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
        // 创建OkHttpClient实例
        OkHttpClient client = new OkHttpClient();
        client.setReadTimeout(1000, TimeUnit.MINUTES);
        client.setWriteTimeout(1000, TimeUnit.MINUTES);
        client.setConnectTimeout(1000, TimeUnit.MINUTES);

        MultipartBuilder builder = new MultipartBuilder()
                .type(MultipartBuilder.FORM);

        // 遍历map中所有参数到builder
        if (map != null) {
            for (String key : map.keySet()) {
                builder.addFormDataPart(key, map.get(key));
            }
        }
        if (paths != null) {
            switch (parameter) {
            case 1:
                for (int i = 0; i < paths.size(); i++) {
                    File file = new File(paths.get(i));
                    builder.addFormDataPart("img" + (i + 1), file.getName(),
                            RequestBody.create(MEDIA_TYPE_PNG, file));
                }
                break;
            case 2:
                for (String path : paths) {
                    builder.addFormDataPart("articleImages", path,
                            RequestBody.create(MEDIA_TYPE_PNG, new File(path)));
                }
                break;
            case 3:
                for (String path : paths) {
                    builder.addFormDataPart("lawCeritificateImage", path,
                            RequestBody.create(MEDIA_TYPE_PNG, new File(path)));
                }
                break;
            case 4: // 更换头像
                for (String path : paths) {
                    builder.addFormDataPart("imgs", path,
                            RequestBody.create(MEDIA_TYPE_PNG, new File(path)));
                }
                break;
            case 5: // 空间图片上传
                for (String path : paths) {
                    builder.addFormDataPart("imgs", path,
                            RequestBody.create(MEDIA_TYPE_PNG, new File(path)));
                }
                break;
            default:
                break;
            }

        }

        // 构建请求体
        RequestBody requestBody = builder.build();
        // 构建请求

        Request request = new Request.Builder().url(url)// 地址
                .post(requestBody)// 添加请求体
                .build();
        // 发送异步请求,同步会报错,Android4.0以后禁止在主线程中进行耗时操作
        client.newCall(request).enqueue(new Callback() {

            public void onFailure(Request arg0, IOException arg1) {
                Log.i("dd", "error" + arg1.toString());
                Message msg = Message.obtain();
                msg.obj = arg1.toString();
                msg.what = Constants.UPLOAD_ERROR;
                handler.sendMessage(msg);
            }

            public void onResponse(Response response) throws IOException {
                String con = response.body().string();
                Message msg = Message.obtain();
                msg.obj = con;
                msg.what = Constants.UPLOAD_SUC;
                handler.sendMessage(msg);
            }

        });

        return result;

    }

解决方案

后台输出错误,查看后台是否限制文件的大小

时间: 2024-10-26 14:07:17

android 4.0-Okhttp上传多图,大于4.5M失败的相关文章

Android中实现OkHttp上传文件到服务器并带进度

在上一讲中 OkHttp下载文件并带进度条 中,我们知道怎样去下载文件了.那上传文件呢 一.编写服务器端 在上一讲服务器下新建UploadFileServlet,代码如下:然后重启服务器! @WebServlet("/UploadFileServlet") @MultipartConfig public class UploadFileServlet extends HttpServlet { private static final long serialVersionUID = 1

Android实现TCP断点上传 后台C#服务接收_Android

终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现,因为大多实现过断点下载.但稳定性不能保证,一旦断开,无法续传.所以得采用另一种流行的做法,TCP上传大文件.  网上查找了一些资料,大多数是断点下载,然后就是单独的C#端的上传接收,或是HTTP的,或是只有android端的,由于任务紧所以之前找的首选方案当然是Http先来实现文件上传,终端采用Post方法,将文件直接传至后端,后端通过Fi

kindeditor上传多图并且支持预览与编辑功能

开始实现上传多图,使用的方法是input=file,然后name等于数组,这样的确可以实现多图上传,处理多图的方法还借鉴了php 多图片上传 [原创],但是这样仅仅是把图片上传到服务器,本地不可以预览,不可以编辑,功能稍微弱了一点:于是乎,找到了kindeditor编辑器,用了它的一个多图上传的组件,使用的方法很简单: 把包解压到指定位置,在页面引入一个css样式文件,一个主要的js文件,一个语言包,注意路径: <link rel="stylesheet" href="

Android中图片的上传和下载

作者:余蒙       在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片的上传和下载.在这里介绍如何利用HttpClient实现图片的上传和下载功能. 1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求. 客户端代码:         File file = new File(imageUrl); String httpUrl = httpDomain+"AddImageServlet"+&

Android 解决WebView无法上传文件的问题

Android 解决WebView无法上传文件的问题 Android原生的WebView并不支持上传文件,需要我们自己实现相应的方法.于是我把工作中的相关代码记录下来.下次直接拿来用就行了.一点一滴都是经验. 1.需要定义三个变量 private ValueCallback<Uri[]> uploadMessageAboveL; private final static int FILE_CHOOSER_RESULT_CODE = 10000; private ValueCallback<

Android关于FTP文件上传和下载功能详解

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 此篇博客为整理文章,供大家学习. 1.首先下载commons-net  jar包,可以百度下载. FTP的文件上传和下载的工具类: package ryancheng.example.progressbar; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Outpu

七牛云存储-java+android 实现多张图片上传至七牛云上面???

问题描述 java+android 实现多张图片上传至七牛云上面??? 新手,刚入行,最近有个需求是要实现多张图片上传,上传至七牛云存储上面,查了一些,仅仅一些概念就理不清了,求能给个具体的实例,非常感谢... 解决方案 首先得到上传接口,剩下的就是遍历图片,一个个调用接口 解决方案二: 可以和七牛云的技术支持联系下,让他们派点工程师协助你们团队开发. 解决方案三: 多线程异步上传操作,很多第三方框架的... 解决方案四: 找七牛云技术支持,网上再找下很多多图片上传demo的 解决方案五: 额,

应用程序-ASP.NET2.0 IIS6 上传文件大小限制

问题描述 ASP.NET2.0 IIS6 上传文件大小限制 已经设置了应用程序下的Web.config中的maxRequestLength大小和metaBase.xml中ASP...Allow的大小了,完全无动于衷! 解决方案 修改web.config中httpRuntime增加maxRequestLength配置就行了(单位kb),metabase.xml是asp的..确认你没改错.. 解决方案二: 解决方案三: 如果设置httpruntime maxRequestLength 还需要在设置你

android相机拍照后上传到指定文件夹,opencv是通过调用文件夹里图片进行处理的吗?

问题描述 android相机拍照后上传到指定文件夹,opencv是通过调用文件夹里图片进行处理的吗? 现在有一个Android拍照上传到指定文件夹的程序和一个opencv图像匹配的程序,能否通过修改某些语句和配置环境可以将两者结合?如果可以求大神赐教!(opencv是在文件夹选取图片进行匹配的.) 解决方案 可以直接调用文件夹里的图片处理,配置的话把路径配置成相对路径就可以了