2017-12-14 5 views
0

Ionでのアップロードが成功しました。しかし、アップロードされたファイルは空でした。
wiresharkのパケットダンプとして、ファイル内容を送信しませんでした。Ionを使用してAndroidファイルをアップロードしていますが、アップロードファイルが空です。

私は間違って何をしましたか?

これは私のコードです。

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()); 
       } 
     }); 

私はアンドロイドのスタジオ3.0とLG Gバージョン5.0を使用しています。

build.gradle アンドロイド{ compileSdkVersion 26 buildToolsVersion '26 0.2' にwhiresharkから

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

enter image description here

、イオンは、正しくファイルを送信しませんでした。
私のデバイスのローカル写真が有効であることを確認しました。
アップロード写真は/storage/emulated/0/Pictures/DigitalPie/P_20171214_141206_2058037049.jpgにあり、サイズは350Kバイトでした。

答えて

0

これはまったく私のばかげたミスによって引き起こされました。 アップロードを開始する前に別のasynctaskが圧縮しようとしましたが、失敗しました。そのため、圧縮された画像は空でした。

以下のようにログして間違いを発見しました。

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

ログはuploading filesize: 0です。

誰かを助けるために私の愚かな間違いを願っています。

関連する問題