非淡泊无以明志,非宁静无以致远。这篇文章主要讲述使用Ion上传Android文件,但上传文件为空相关的知识,希望能为你提供帮助。
我用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
,它的大小是350Kbytes。答案这完全是我的愚蠢错误造成的。在开始上传之前,我的另一个asynctask试图压缩它,但失败了。因此,压缩图像是空的。
我通过记录如下发现了我的错误。
LOG.info("uploading filesize: " + currentPhotoPath.getSize());
Ion.with(getContext())
...
日志说
uploading filesize: 0
。【使用Ion上传Android文件,但上传文件为空】希望我的愚蠢错误能够帮助别人。
推荐阅读
- Android-Django图片上传
- 用于移动safari的html5网络应用程序,用于从Photos.app上传图像()
- 如何使用wkhtmltopdf在PDF上添加新页面
- 如何在Windows的XAMPP中使用cmd提示符导入mysql数据库
- 如何使用CSS和jQuery禁用文档中的文本选择
- 如何使用自己的logo创建自定义加载栏
- 如何使用TinyMCE和Prism.js添加代码段
- 如何解决Xampp错误(启动Apache时,另一个应用程序(Skype)正在使用端口80)
- 如何创建与Skype交互的HTML链接(通话,聊天,查看个人资料,添加到联系人)