/** * 异步传输工具 *  * @author chen.lin *  */@SuppressWarnings("deprecation")public class AsyncHttpUtil {    private static boolean isSuccess = false;    /**     * 异步上传文件     *      * @param path     *            :文件路径     * @param url     *            :上传的url     */    public static boolean uploadFile(final Context context, String path, String url, String filename,            final ProgressDialog progress) throws Exception {        File file = new File(path);        if (file.exists() && file.length() > 0) {            AsyncHttpClient client = new AsyncHttpClient();            RequestParams params = new RequestParams();            params.put("uploadfile", file);            params.put("newFilename", filename);            // 设置进度条最大值            progress.setMax(Integer.parseInt(file.length() + ""));            // 上传文件            client.post(url, params, new AsyncHttpResponseHandler() {                @Override                public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {                    // 上传成功后要做的工作                    progress.dismiss();                    Toast.makeText(context, "上传成功", Toast.LENGTH_LONG).show();                    // progress.setProgress(0);                    isSuccess = true;                }                @Override                public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {                    progress.dismiss();                    Toast.makeText(context, "上传失败", Toast.LENGTH_LONG).show();                    isSuccess = false;                }                @Override                public void onProgress(long bytesWritten, long totalSize) {                    int count = (int) ((bytesWritten * 1.0 / totalSize) * 100);                    // 上传进度显示                    progress.setProgress(count);                    super.onProgress(bytesWritten, totalSize);                }                @Override                public void onRetry(int retryNo) {                    super.onRetry(retryNo);                    // 返回重试次数                }            });        } else {            progress.dismiss();            Toast.makeText(context, "文件不存在", Toast.LENGTH_LONG).show();        }        return isSuccess;    }    /**     * @param url     *            要下载的文件URL     * @throws Exception     */    public static void downloadFile(final Context mContext, String url, final ProgressDialog progress) throws Exception {        AsyncHttpClient client = new AsyncHttpClient();        // 指定文件类型        String[] fileTypes = new String[] { "image/png", "image/jpeg" };        // 获取二进制数据如图片和其他文件        client.get(url, new BinaryHttpResponseHandler(fileTypes) {            @Override            public void onSuccess(int statusCode, Header[] headers, byte[] binaryData) {                String tempPath = Environment.getExternalStorageDirectory().getPath() + "/temp.jpg";                // TODO Auto-generated method stub                // 下载成功后需要做的工作                progress.setProgress(0);                //                Logger.e("binaryData:", "共下载了:" + binaryData.length);                //                Bitmap bmp = BitmapFactory.decodeByteArray(binaryData, 0, binaryData.length);                File file = new File(tempPath);                // 压缩格式                CompressFormat format = Bitmap.CompressFormat.JPEG;                // 压缩比例                int quality = 100;                try {                    // 若存在则删除                    if (file.exists())                        file.delete();                    // 创建文件                    file.createNewFile();                    //                    OutputStream stream = new FileOutputStream(file);                    // 压缩输出                    bmp.compress(format, quality, stream);                    // 关闭                    stream.close();                    //                    Toast.makeText(mContext, "下载成功\n" + tempPath, Toast.LENGTH_LONG).show();                } catch (IOException e) {                    e.printStackTrace();                }            }            @Override            public void onFailure(int statusCode, Header[] headers, byte[] binaryData, Throwable error) {                Toast.makeText(mContext, "下载失败", Toast.LENGTH_LONG).show();            }            @Override            public void onProgress(long bytesWritten, long totalSize) {                int count = (int) ((bytesWritten * 1.0 / totalSize) * 100);                // 下载进度显示                progress.setProgress(count);                Logger.e("下载 Progress>>>>>", bytesWritten + " / " + totalSize);                super.onProgress(bytesWritten, totalSize);            }            @Override            public void onRetry(int retryNo) {                super.onRetry(retryNo);                // 返回重试次数            }        });    }}

———————————————————————
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
有需求者请进站查看,非诚勿扰

https://item.taobao.com/item.htm?spm=686.1000925.0.0.4a155084hc8wek&id=555888526201

01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)
——————————————————————–

更多相关文章

  1. 我的Android进阶之旅------>Android电话实例
  2. ADT下载地址整理
  3. ProgressBar播放动画
  4. Android(安卓)zip解压
  5. 最新版 Android(安卓)SDK 无法获取SDK包 的解决方案
  6. 我的Android进阶之旅------>Android电话实例
  7. AndroidManifest文件中android属性
  8. SeekBar自定义样式最优实现
  9. Android(安卓)文件系统与Android11 分区存储

随机推荐

  1. 使用Android(安卓)Instrument 自动测试 W
  2. Android(安卓)中数据库查询方法 query()
  3. ListView美化
  4. unity内置浏览器插件UniWebView的使用(支
  5. Android(安卓)启动过程
  6. android和j2me之清屏(clearScreen)
  7. [转]Android文件管理器介绍
  8. android Uri获取真实路径转换成File的方
  9. android三级联动、四级联动(地区选择)
  10. android Button组件的属性和方法