我正在开发一个应用程序,我必须在其中录制音频文件并上传到服务器上。
在某些情况下,互联网可能会关闭,文件只上传一半。
如何将该文件与 android 文件系统上可用的文件进行比较,以便在文件未成功上传时重新上传文件?
好吧,您可以将校验和与一些哈希函数(如MD5
或SHA1
)进行比较
对于 MD5
假设您使用Java
安卓功能将是这样的
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);