去年的OSS还是链接可预览,今年可能是阿里云OSS升级了,变成直接下载了。
所以重新改回预览,其他全部不变,上传添加 contentType 配置

//文件名
String originalFilename = file.getOriginalFilename();
//拿到.后缀
String type = originalFilename.substring(originalFilename.lastIndexOf("."));

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(getcontentType(type));

getcontentType 为判断文件类型:

public static String getcontentType(String filenameExtension) {
    if (".pdf".equalsIgnoreCase(filenameExtension)) {
        return "application/pdf";
    }
    if (".bmp".equalsIgnoreCase(filenameExtension)) {
        return "image/bmp";
    }
    if (".gif".equalsIgnoreCase(filenameExtension)) {
        return "image/gif";
    }
    if (".jpeg".equalsIgnoreCase(filenameExtension) ||
            ".jpg".equalsIgnoreCase(filenameExtension) ||
            ".png".equalsIgnoreCase(filenameExtension)) {
        return "image/jpg";
    }
    if (".html".equalsIgnoreCase(filenameExtension)) {
        return "text/html";
    }
    if (".txt".equalsIgnoreCase(filenameExtension)) {
        return "text/plain";
    }
    if (".vsd".equalsIgnoreCase(filenameExtension)) {
        return "application/vnd.visio";
    }
    if (".pptx".equalsIgnoreCase(filenameExtension) ||
            ".ppt".equalsIgnoreCase(filenameExtension)) {
        return "application/vnd.ms-powerpoint";
    }
    if (".docx".equalsIgnoreCase(filenameExtension)) {
        return "application/msword";
    }
    if (".xml".equalsIgnoreCase(filenameExtension)) {
        return "text/xml";
    }
    return "image/jpg";
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐