ftp 断点上传

This commit is contained in:
AriaLyy
2017-07-31 17:41:24 +08:00
parent 4f40341ee9
commit 867289bc86
38 changed files with 304 additions and 360 deletions

1
app/.gitignore vendored
View File

@ -1 +1,2 @@
/build
*.log

View File

@ -24,7 +24,6 @@
</activity>
<activity android:name=".download.DownloadActivity"/>
<activity android:name=".upload.UploadActivity"/>
<activity android:name=".download.SingleTaskActivity"/>
<activity android:name=".download.multi_download.MultiTaskActivity"/>
<activity android:name=".download.fragment_download.FragmentActivity"/>
@ -34,6 +33,7 @@
<activity android:name=".download.group.DownloadGroupActivity"/>
<activity android:name=".download.FtpDownloadActivity"/>
<activity android:name=".download.group.FTPDirDownloadActivity"/>
<activity android:name=".upload.HttpUploadActivity"/>
<activity android:name=".upload.FtpUploadActivity"/>
<service android:name=".download.service_download.DownloadService"/>

View File

@ -37,6 +37,8 @@
</download>
<upload>
<!--是否需要转换速度单位转换完成后为1b/s、1kb/s、1mb/s、1gb/s、1tb/s如果不需要将返回byte长度-->
<convertSpeed value="true"/>
<!--设置上传队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>

View File

@ -27,7 +27,7 @@ import com.arialyy.simple.download.FtpDownloadActivity;
import com.arialyy.simple.download.group.DownloadGroupActivity;
import com.arialyy.simple.download.group.FTPDirDownloadActivity;
import com.arialyy.simple.upload.FtpUploadActivity;
import com.arialyy.simple.upload.UploadActivity;
import com.arialyy.simple.upload.HttpUploadActivity;
/**
* Created by Aria.Lao on 2017/3/1.
@ -54,7 +54,7 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
startActivity(new Intent(this, DownloadActivity.class));
break;
case R.id.upload:
startActivity(new Intent(this, UploadActivity.class));
startActivity(new Intent(this, HttpUploadActivity.class));
break;
case R.id.download_task_group:
startActivity(new Intent(this, DownloadGroupActivity.class));

View File

@ -185,17 +185,6 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
public void onClick(View view) {
switch (view.getId()) {
case R.id.start:
//String text = ((TextView) view).getText().toString();
//if (text.equals("重新开始?") || text.equals("开始")) {
// Aria.download(this)
// .load(URL)
// .addHeader("groupName", "value")
// .setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")
// .setFileName("hehe.apk")
// .start();
//} else if (text.equals("恢复")) {
// Aria.download(this).load(URL).resume();
//}
Aria.download(this)
.load(DOWNLOAD_URL)
.addHeader("groupName", "value")

View File

@ -20,7 +20,9 @@ import android.util.Log;
import android.view.View;
import com.arialyy.annotations.Upload;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.upload.UploadEntity;
import com.arialyy.aria.core.upload.UploadTask;
import com.arialyy.aria.util.CommonUtil;
import com.arialyy.frame.util.show.L;
import com.arialyy.frame.util.show.T;
import com.arialyy.simple.R;
@ -32,12 +34,19 @@ import com.arialyy.simple.databinding.ActivityFtpUploadBinding;
* Ftp 文件上传demo
*/
public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
private final String FILE_PATH = "/mnt/sdcard/王者军团.apk";
private final String FILE_PATH = "/mnt/sdcard/gggg.apk";
private final String URL = "ftp://172.18.104.129:21/upload/";
@Override protected void init(Bundle savedInstanceState) {
setTile("FTP 文件上传");
super.init(savedInstanceState);
Aria.upload(this).register();
UploadEntity entity = Aria.upload(this).getUploadEntity(FILE_PATH);
if (entity != null) {
getBinding().setFileSize(CommonUtil.formatFileSize(entity.getFileSize()));
getBinding().setProgress(entity.isComplete() ? 100
: (int) (entity.getCurrentProgress() * 100 / entity.getFileSize()));
}
}
@Override protected int setLayoutId() {
@ -53,7 +62,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
Aria.upload(this).loadFtp(FILE_PATH).stop();
break;
case R.id.cancel:
Aria.upload(this).load(FILE_PATH).cancel();
Aria.upload(this).loadFtp(FILE_PATH).cancel();
break;
}
}
@ -62,12 +71,12 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
getBinding().setFileSize(task.getConvertFileSize());
}
@Upload.onTaskPre public void taskPre(UploadTask task) {
L.d(TAG, "fileSize = " + task.getConvertFileSize());
@Upload.onTaskStart public void taskStart(UploadTask task) {
Log.d(TAG, "开始上传");
}
@Upload.onTaskStart public void taskStart(UploadTask task) {
@Upload.onTaskResume public void taskResume(UploadTask task) {
Log.d(TAG, "恢复上传");
}
@Upload.onTaskStop public void taskStop(UploadTask task) {
@ -77,7 +86,9 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
@Upload.onTaskCancel public void taskCancel(UploadTask task) {
getBinding().setSpeed("");
Log.d(TAG, "取消上传");
getBinding().setFileSize("");
getBinding().setProgress(0);
Log.d(TAG, "删除任务");
}
@Upload.onTaskRunning public void taskRunning(UploadTask task) {

View File

@ -17,16 +17,12 @@
package com.arialyy.simple.upload;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import butterknife.Bind;
import butterknife.OnClick;
import com.arialyy.annotations.Upload;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.upload.UploadTask;
import com.arialyy.frame.util.FileUtil;
import com.arialyy.frame.util.show.L;
import com.arialyy.frame.util.show.T;
import com.arialyy.simple.R;
import com.arialyy.simple.base.BaseActivity;
import com.arialyy.simple.databinding.ActivityUploadBinding;
@ -35,50 +31,19 @@ import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
/**
* Created by Aria.Lao on 2017/2/9.
*/
public class UploadActivity extends BaseActivity<ActivityUploadBinding> {
private static final String TAG = "UploadActivity";
public class HttpUploadActivity extends BaseActivity<ActivityUploadBinding> {
private static final String TAG = "HttpUploadActivity";
@Bind(R.id.pb) HorizontalProgressBarWithNumber mPb;
private static final int START = 0;
private static final int STOP = 1;
private static final int CANCEL = 2;
private static final int RUNNING = 3;
private static final int COMPLETE = 4;
private static final String FILE_PATH = "/sdcard/Download/test.zip";
private Handler mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
super.handleMessage(msg);
UploadTask task = (UploadTask) msg.obj;
switch (msg.what) {
case START:
getBinding().setFileSize(FileUtil.formatFileSize(task.getFileSize()));
break;
case STOP:
mPb.setProgress(0);
break;
case CANCEL:
mPb.setProgress(0);
break;
case RUNNING:
int p = (int) (task.getCurrentProgress() * 100 / task.getFileSize());
mPb.setProgress(p);
break;
case COMPLETE:
T.showShort(UploadActivity.this, "上传完成");
mPb.setProgress(100);
break;
}
}
};
private static final String FILE_PATH = "/sdcard/large.rar";
@Override protected int setLayoutId() {
return R.layout.activity_upload;
}
@Override protected void init(Bundle savedInstanceState) {
setTile("HTTP 上传");
super.init(savedInstanceState);
setTile("http上传");
Aria.upload(this).register();
}
@ -101,27 +66,31 @@ public class UploadActivity extends BaseActivity<ActivityUploadBinding> {
@Upload.onPre public void onPre(UploadTask task) {
}
@Upload.onTaskPre public void taskPre(UploadTask task) {
L.d(TAG, "fileSize = " + task.getConvertFileSize());
}
@Upload.onTaskStart public void taskStart(UploadTask task) {
mHandler.obtainMessage(START, task).sendToTarget();
L.d(TAG, "upload start");
getBinding().setFileSize(task.getConvertFileSize());
}
@Upload.onTaskStop public void taskStop(UploadTask task) {
mHandler.obtainMessage(STOP, task).sendToTarget();
L.d(TAG, "upload stop");
getBinding().setSpeed("");
getBinding().setProgress(0);
}
@Upload.onTaskCancel public void taskCancel(UploadTask task) {
mHandler.obtainMessage(CANCEL, task).sendToTarget();
L.d(TAG, "upload cancel");
getBinding().setSpeed("");
getBinding().setProgress(0);
}
@Upload.onTaskRunning public void taskRunning(UploadTask task) {
mHandler.obtainMessage(RUNNING, task).sendToTarget();
getBinding().setSpeed(task.getConvertSpeed());
getBinding().setProgress(task.getPercent());
}
@Upload.onTaskComplete public void taskComplete(UploadTask task) {
mHandler.obtainMessage(COMPLETE, task).sendToTarget();
L.d(TAG, "上传完成");
getBinding().setSpeed("");
getBinding().setProgress(100);
}
}

View File

@ -13,7 +13,7 @@
android:id="@+id/download"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="下载"
android:text="http 下载"
style="?buttonBarButtonStyle"
/>
@ -21,7 +21,7 @@
android:id="@+id/upload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="上传"
android:text="http 上传"
style="?buttonBarButtonStyle"
/>
@ -29,7 +29,7 @@
android:id="@+id/download_task_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="下载任务组"
android:text="http 下载任务组"
style="?buttonBarButtonStyle"
/>

View File

@ -11,6 +11,11 @@
type="String"
/>
<variable
name="progress"
type="int"
/>
</data>
<LinearLayout
@ -34,6 +39,7 @@
android:layout_margin="16dp"
android:layout_toLeftOf="@+id/size"
android:max="100"
android:progress="@{progress}"
style="?android:attr/progressBarStyleHorizontal"
/>