springboot (apk)文件上傳解析 文件名稱,包名,版本號,版本名稱
擼過的代碼,遇到的問題記下
環境依賴
引入解析Apk的依賴
<dependency>
<groupId>net.dongliu</groupId>
<artifactId>apk-parser</artifactId>
<version>2.6.10</version>
</dependency>
解析Apk工具類
import net.dongliu.apk.parser.ApkFile;
import net.dongliu.apk.parser.bean.ApkMeta;
import net.dongliu.apk.parser.bean.UseFeature;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class ApkInfoUtil {
public static Map<String, Object> readAPK(File apkUrl) {
Map<String, Object> resMap = new HashMap<String, Object>();
try (ApkFile apkFile = new ApkFile(apkUrl)) {
ApkMeta apkMeta = apkFile.getApkMeta();
resMap.put("filename", apkMeta.getName());
resMap.put("pkgname", apkMeta.getPackageName());
resMap.put("versioncode", apkMeta.getVersionCode());
resMap.put("versionname", apkMeta.getVersionName());
for (UseFeature feature : apkMeta.getUsesFeatures()) {
System.out.println(feature.getName());
}
} catch (IOException e) {
e.printStackTrace();
}
return resMap;
}
}
效果圖: 自己去網上下一個QQApk的安裝包文件 進行測試
踩過的坑:因爲本人使用的是:MultipartFile 格式 去接受上傳文件的,
@ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public UploadFile upload(@RequestPart("file") MultipartFile file, @RequestParam("filePath") String filePath) {
}
其中因爲上傳的文件過大 需要去配置 大小。application.yml中配置
spring:
application:
name: uploadFile-Service
servlet:
multipart:
enabled: true
file-size-threshold: 0
max-file-size: 20MB
max-request-size: 100MB