修复http表单上传,本地md5和上传的服务的的文件md5不一致的问题 https://github.com/AriaLyy/Aria/issues/730
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
- 修复同一个url地址的任务提示路径冲突的问题
|
- 修复同一个url地址的任务提示路径冲突的问题
|
||||||
- 修复m3u8任务地址错误时,无法删除实体的问题 https://github.com/AriaLyy/Aria/issues/712
|
- 修复m3u8任务地址错误时,无法删除实体的问题 https://github.com/AriaLyy/Aria/issues/712
|
||||||
- 修复m3u8gzip的问题,https://github.com/AriaLyy/Aria/issues/639
|
- 修复m3u8gzip的问题,https://github.com/AriaLyy/Aria/issues/639
|
||||||
|
- 修复http表单上传,本地md5和上传的服务的的文件md5不一致的问题 https://github.com/AriaLyy/Aria/issues/730
|
||||||
- 增加m3u8密钥下载地址转换器增加ts列表的url地址 https://github.com/AriaLyy/Aria/issues/718
|
- 增加m3u8密钥下载地址转换器增加ts列表的url地址 https://github.com/AriaLyy/Aria/issues/718
|
||||||
- 增加现在http文件下载将使用HEAD请求获取文件大小,配置文件增加 <useHeadRequest value="true"/>
|
- 增加现在http文件下载将使用HEAD请求获取文件大小,配置文件增加 <useHeadRequest value="true"/>
|
||||||
- 增加允许不使用apt直接通过实现监听器来回调下载进度更新,该功能由[chenfei0928](https://github.com/chenfei0928)提交,感谢他的pr。如果注解不生效,只需要实现`DownloadListener`接口便可
|
- 增加允许不使用apt直接通过实现监听器来回调下载进度更新,该功能由[chenfei0928](https://github.com/chenfei0928)提交,感谢他的pr。如果注解不生效,只需要实现`DownloadListener`接口便可
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import com.arialyy.aria.util.CommonUtil;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
@@ -75,7 +76,6 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
|
|||||||
mHttpConn.setRequestProperty("User-Agent", getUserAgent());
|
mHttpConn.setRequestProperty("User-Agent", getUserAgent());
|
||||||
mHttpConn.setConnectTimeout(getTaskConfig().getConnectTimeOut());
|
mHttpConn.setConnectTimeout(getTaskConfig().getConnectTimeOut());
|
||||||
mHttpConn.setReadTimeout(getTaskConfig().getIOTimeOut());
|
mHttpConn.setReadTimeout(getTaskConfig().getIOTimeOut());
|
||||||
//mHttpConn.setRequestProperty("Range", "bytes=" + 0 + "-" + "100");
|
|
||||||
//内部缓冲区---分段上传防止oom
|
//内部缓冲区---分段上传防止oom
|
||||||
mHttpConn.setChunkedStreamingMode(getTaskConfig().getBuffSize());
|
mHttpConn.setChunkedStreamingMode(getTaskConfig().getBuffSize());
|
||||||
|
|
||||||
@@ -123,9 +123,10 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getContentType() {
|
private String getContentType() {
|
||||||
return (mTaskOption.getHeaders() == null || TextUtils.isEmpty(
|
//return (mTaskOption.getHeaders() == null || TextUtils.isEmpty(
|
||||||
mTaskOption.getHeaders().get("Content-Type"))) ? "multipart/form-data"
|
// mTaskOption.getHeaders().get("Content-Type"))) ? "multipart/form-data"
|
||||||
: mTaskOption.getHeaders().get("Content-Type");
|
// : mTaskOption.getHeaders().get("Content-Type");
|
||||||
|
return "multipart/form-data";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getUserAgent() {
|
private String getUserAgent() {
|
||||||
@@ -176,23 +177,23 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
|
|||||||
|
|
||||||
FileInputStream inputStream = new FileInputStream(uploadFile);
|
FileInputStream inputStream = new FileInputStream(uploadFile);
|
||||||
byte[] buffer = new byte[4096];
|
byte[] buffer = new byte[4096];
|
||||||
int bytesRead;
|
int bytesLen;
|
||||||
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
while ((bytesLen = inputStream.read(buffer)) != -1) {
|
||||||
progress(bytesRead);
|
mOutputStream.write(buffer, 0, bytesLen);
|
||||||
mOutputStream.write(buffer, 0, bytesRead);
|
progress(bytesLen);
|
||||||
if (getThreadTask().isBreak()) {
|
if (getThreadTask().isBreak()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (mSpeedBandUtil != null) {
|
if (mSpeedBandUtil != null) {
|
||||||
mSpeedBandUtil.limitNextBytes(bytesRead);
|
mSpeedBandUtil.limitNextBytes(bytesLen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mOutputStream.flush();
|
mOutputStream.flush();
|
||||||
//outputStream.close(); //不能调用,否则服务器端异常
|
|
||||||
inputStream.close();
|
inputStream.close();
|
||||||
writer.append(LINE_END);
|
writer.append(LINE_END).flush();
|
||||||
writer.flush();
|
// 保证上传的文件和本地的一致,https://www.cnblogs.com/tugenhua0707/p/8975121.html
|
||||||
|
writer.append(PREFIX).append(BOUNDARY).append(PREFIX).append(LINE_END).flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -202,11 +203,6 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
|
|||||||
*/
|
*/
|
||||||
private String finish(PrintWriter writer) throws IOException {
|
private String finish(PrintWriter writer) throws IOException {
|
||||||
StringBuilder response = new StringBuilder();
|
StringBuilder response = new StringBuilder();
|
||||||
|
|
||||||
writer.append(LINE_END).flush();
|
|
||||||
writer.append(PREFIX).append(BOUNDARY).append(PREFIX).append(LINE_END);
|
|
||||||
writer.flush();
|
|
||||||
|
|
||||||
int status = mHttpConn.getResponseCode();
|
int status = mHttpConn.getResponseCode();
|
||||||
|
|
||||||
if (status == HttpURLConnection.HTTP_OK) {
|
if (status == HttpURLConnection.HTTP_OK) {
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
if (task.getKey().equals(mUrl)) {
|
if (task.getKey().equals(mUrl)) {
|
||||||
Toast.makeText(SingleTaskActivity.this, getString(R.string.download_success),
|
Toast.makeText(SingleTaskActivity.this, getString(R.string.download_success),
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
ALog.d(TAG, "文件md5: 9886e90f014d462b560dcec9c327bdb7");
|
//ALog.d(TAG, "文件md5: 9886e90f014d462b560dcec9c327bdb7");
|
||||||
ALog.d(TAG, "下载完成的文件md5: " + CommonUtil.getFileMD5(new File(task.getFilePath())));
|
ALog.d(TAG, "下载完成的文件md5: " + CommonUtil.getFileMD5(new File(task.getFilePath())));
|
||||||
getBinding().pl.setInfo(task.getEntity());
|
getBinding().pl.setInfo(task.getEntity());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ import java.io.File;
|
|||||||
public class HttpUploadActivity extends BaseActivity<ActivitySingleBinding> {
|
public class HttpUploadActivity extends BaseActivity<ActivitySingleBinding> {
|
||||||
private static final String TAG = "HttpUploadActivity";
|
private static final String TAG = "HttpUploadActivity";
|
||||||
|
|
||||||
private final String FILE_PATH = "/mnt/sdcard/QQMusic-import-1.2.1.zip";
|
//private final String FILE_PATH = "/mnt/sdcard/QQMusic-import-1.2.1.zip";
|
||||||
|
private final String FILE_PATH = "/mnt/sdcard/update.jpg";
|
||||||
//private final String FILE_PATH =
|
//private final String FILE_PATH =
|
||||||
// Environment.getExternalStorageDirectory().getPath() + "/Download/QQMusic-import-1.2.1.zip";
|
// Environment.getExternalStorageDirectory().getPath() + "/Download/QQMusic-import-1.2.1.zip";
|
||||||
private UploadEntity mEntity;
|
private UploadEntity mEntity;
|
||||||
@@ -55,9 +56,11 @@ public class HttpUploadActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
Aria.upload(this).getTaskList();
|
Aria.upload(this).getTaskList();
|
||||||
|
|
||||||
mEntity = Aria.upload(this).getFirstUploadEntity(FILE_PATH);
|
mEntity = Aria.upload(this).getFirstUploadEntity(FILE_PATH);
|
||||||
if (mEntity != null){
|
if (mEntity == null) {
|
||||||
getBinding().pl.setInfo(mEntity);
|
mEntity = new UploadEntity();
|
||||||
|
mEntity.setFilePath(FILE_PATH);
|
||||||
}
|
}
|
||||||
|
getBinding().pl.setInfo(mEntity);
|
||||||
Aria.upload(this).register();
|
Aria.upload(this).register();
|
||||||
|
|
||||||
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
||||||
@@ -86,7 +89,7 @@ public class HttpUploadActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
option.setAttachment("file");
|
option.setAttachment("file");
|
||||||
Aria.upload(HttpUploadActivity.this).load(FILE_PATH)
|
Aria.upload(HttpUploadActivity.this).load(FILE_PATH)
|
||||||
//.setUploadUrl("http://lib-test.xzxyun.com:8042/Api/upload?data={\"type\":\"1\",\"fileType\":\".apk\"}")
|
//.setUploadUrl("http://lib-test.xzxyun.com:8042/Api/upload?data={\"type\":\"1\",\"fileType\":\".apk\"}")
|
||||||
.setUploadUrl("http://9.9.9.28:5000/upload/")
|
.setUploadUrl("http://172.16.0.91:5000/upload/")
|
||||||
.ignoreFilePathOccupy()
|
.ignoreFilePathOccupy()
|
||||||
//.setTempUrl("http://192.168.1.6:8080/upload/sign_file/").setAttachment("file")
|
//.setTempUrl("http://192.168.1.6:8080/upload/sign_file/").setAttachment("file")
|
||||||
//.addHeader("iplanetdirectorypro", "11a09102fb934ad0bc206f9c611d7933")
|
//.addHeader("iplanetdirectorypro", "11a09102fb934ad0bc206f9c611d7933")
|
||||||
|
|||||||
Reference in New Issue
Block a user