springboot (apk)文件上傳解析 文件名稱,包名,版本號,版本名稱

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章