Android 正在使用 Ion 上传文件,但上传文件为空
Android file uploading using Ion, but upload file was empty
我用 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{
编译SDK版本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。
这完全是我愚蠢的错误造成的。
在开始上传之前,我的另一个异步任务试图压缩它,但失败了。因为它,压缩图像是空的。
我通过如下记录发现了我的错误。
LOG.info("uploading filesize: " + currentPhotoPath.getSize());
Ion.with(getContext())
...
日志说 uploading filesize: 0
。
希望我的愚蠢错误能帮助到别人。
我用 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{
编译SDK版本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。
这完全是我愚蠢的错误造成的。 在开始上传之前,我的另一个异步任务试图压缩它,但失败了。因为它,压缩图像是空的。
我通过如下记录发现了我的错误。
LOG.info("uploading filesize: " + currentPhotoPath.getSize());
Ion.with(getContext())
...
日志说 uploading filesize: 0
。
希望我的愚蠢错误能帮助到别人。