【问题标题】:Android file uploading using Ion, but upload file was emptyAndroid 使用 Ion 上传文件,但上传文件为空
【发布时间】:2017-12-14 05:48:19
【问题描述】:

我使用 Ion 上传成功。但是上传的文件是空的。
作为 Wireshark 的数据包转储,Ion 没有发送文件内容。

我做错了什么?

这是我的代码。

MyFragment.java

Ion.with(getContext())
        .load(uploadUrl)
        .uploadProgressHandler(new ProgressCallback() {
            @Override
            public void onProgress(long downloaded, long total) {
                LOG.debug("" + downloaded + " / " + total);
            }
        })
        .setMultipartFile("file", new File(currentPhotoPath))
        .asJsonObject()
        .setCallback(new FutureCallback<JsonObject>() {
            @Override
            public void onCompleted(Exception e, JsonObject result) {
                String msg;
                if (e != null) {
                    LOG.error("upload failed:", e);
                } else {
                    LOG.info("upload completed: {}", result.toString());
                }
        });

我使用的是 android studio 3.0 和 LG G 5.0 版。

build.gradle 安卓 { compileSdkVersion 26 buildToolsVersion '26.0.2'

defaultConfig {
    applicationId "kr.co.digitalpie.dansok"
    minSdkVersion 17  //Android 4.2 Jelly Bean
    targetSdkVersion 26 
    versionCode 55
    versionName "4.0.0"
    multiDexEnabled true
dependencies {
    compile 'com.koushikdutta.ion:ion:2.+'
    ...

Whireshark packet dump

来自 whireshark,Ion 没有正确发送文件。
所以我检查了我的设备本地照片是否有效。
上传照片位于/storage/emulated/0/Pictures/DigitalPie/P_20171214_141206_2058037049.jpg,大小为350Kbytes。

【问题讨论】:

    标签: android file-upload android-ion


    【解决方案1】:

    这完全是我的愚蠢错误造成的。 在开始上传我的另一个异步任务之前尝试压缩它,但失败了。因此,压缩后的图像是空的。

    我通过以下记录发现了我的错误。

    LOG.info("uploading filesize: " + currentPhotoPath.getSize());
    Ion.with(getContext())
     ...
    

    日志说uploading filesize: 0

    希望我的愚蠢错误能帮助某人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 2017-10-03
      • 2023-03-04
      • 1970-01-01
      • 2014-01-09
      相关资源
      最近更新 更多