我使用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
android {
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
,尺寸为350K字节。
答案 0 :(得分:0)
这完全是我的愚蠢错误造成的。 在开始上传之前,我的另一个asynctask试图压缩它,但失败了。因此,压缩图像是空的。
我通过记录如下发现了我的错误。
LOG.info("uploading filesize: " + currentPhotoPath.getSize());
Ion.with(getContext())
...
日志说uploading filesize: 0
。
希望我的愚蠢错误能够帮助别人。