【发布时间】:2017-11-01 05:51:30
【问题描述】:
我正在开发一个应用程序,我必须在其中录制音频文件并上传到服务器。
可能会出现网络中断而文件仅上传一半的情况。
如何将该文件与 android 文件系统上可用的文件进行比较,以便在未成功上传时重新上传文件?
【问题讨论】:
-
您可以从 HTTP 中受益。如果您还没有完成上传,您将有错误状态或超时
标签: android file upload compare checksum
我正在开发一个应用程序,我必须在其中录制音频文件并上传到服务器。
可能会出现网络中断而文件仅上传一半的情况。
如何将该文件与 android 文件系统上可用的文件进行比较,以便在未成功上传时重新上传文件?
【问题讨论】:
标签: android file upload compare checksum
您可以将校验和与MD5 或SHA1 等哈希函数进行比较
对于 MD5
假设你使用Java做Android功能会是这样的
public static String checkSum(String path){
String checksum = null;
try {
FileInputStream fis = new FileInputStream(path);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] buffer = new byte[8192];
int numOfBytesRead;
while( (numOfBytesRead = fis.read(buffer)) > 0){
md.update(buffer, 0, numOfBytesRead);
}
byte[] hash = md.digest();
checksum = new BigInteger(1, hash).toString(16);
} catch (IOException ex) {
} catch (NoSuchAlgorithmException ex) {
}
return checksum;
}
PHP 更简单,你可以使用md5_file 函数
$md5 = md5_file($filepath);
【讨论】: