通过文件名判断并获取OSS服务文件上传时文件的contentType

https://help.aliyun.com/knowledge_detail/39522.html?spm=5176.11065259.1996646101.searchclickresult.124c5f2fmoEsDJ

 /**
     * 通过文件名判断并获取OSS服务文件上传时文件的contentType
     *
     * @param fileName 文件名
     * @return 文件的contentType
     */
    public static final String getContentType(String fileName) {
        String FilenameExtension = fileName.substring(fileName.lastIndexOf("."));
        if (FilenameExtension.equalsIgnoreCase(".bmp")) {
            return "application/x-bmp";
        }
        if (FilenameExtension.equalsIgnoreCase(".gif")) {
            return "image/gif";
        }
        if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
                FilenameExtension.equalsIgnoreCase(".jpg") ||
                FilenameExtension.equalsIgnoreCase(".png")) {
            return "image/jpeg";
        }
        if (FilenameExtension.equalsIgnoreCase(".html")) {
            return "text/html";
        }
        if (FilenameExtension.equalsIgnoreCase(".txt")) {
            return "text/plain";
        }
        if (FilenameExtension.equalsIgnoreCase(".vsd")) {
            return "application/vnd.visio";
        }
        if (FilenameExtension.equalsIgnoreCase(".pptx") ||
                FilenameExtension.equalsIgnoreCase(".ppt")) {
            return "application/vnd.ms-powerpoint";
        }
        if (FilenameExtension.equalsIgnoreCase(".docx") ||
                FilenameExtension.equalsIgnoreCase(".doc")) {
            return "application/msword";
        }
        if (FilenameExtension.equalsIgnoreCase(".xla") ||
                FilenameExtension.equalsIgnoreCase(".xlc")||
                    FilenameExtension.equalsIgnoreCase(".xlm")||
                        FilenameExtension.equalsIgnoreCase(".xls")||
                            FilenameExtension.equalsIgnoreCase(".xlt")||
                                FilenameExtension.equalsIgnoreCase(".xlw")) {
            return "application/vnd.ms-excel";
        }
        if (FilenameExtension.equalsIgnoreCase(".xml")) {
            return "text/xml";
        }
        if (FilenameExtension.equalsIgnoreCase(".pdf")) {
            return "application/pdf";
        }
        if (FilenameExtension.equalsIgnoreCase(".zip")) {
            return "application/zip";
        }
        if (FilenameExtension.equalsIgnoreCase(".tar")) {
            return "application/x-tar";
        }
        if (FilenameExtension.equalsIgnoreCase(".avi")) {
            return "video/avi";
        }
        if (FilenameExtension.equalsIgnoreCase(".mp4")) {
            return "video/mpeg4";
        }
        if (FilenameExtension.equalsIgnoreCase(".mp3")) {
            return "audio/mp3";
        }
        if (FilenameExtension.equalsIgnoreCase(".mp2")) {
            return "audio/mp2";
        }
        return "application/octet-stream";
    }
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java 可以使用 ImageIO 类来读取 jpg 文件,将其转换为 BufferedImage 对象并缓存在内存中。然后,可以使用 OSS SDK 提供的 PutObjectRequest 类上传该对象到 OSS 服务器。 以下是示例代码: ```java import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import javax.imageio.ImageIO; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; public class UploadJpgToOSS { public static void main(String[] args) { String endpoint = "yourEndpoint"; // oss 服务器地址 String accessKeyId = "yourAccessKeyId"; // accessKeyId String accessKeySecret = "yourAccessKeySecret"; // accessKeySecret String bucketName = "yourBucketName"; // 存储空间名称 String objectName = "yourObjectName"; // 对象名称 String filePath = "yourFilePath"; // jpg 文件路径 // 创建 OSS 客户端 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { // 读取 jpg 文件并缓存到内存中 BufferedImage image = ImageIO.read(new File(filePath)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "jpg", baos); byte[] bytes = baos.toByteArray(); // 上传缓存在内存中的 jpg 文件OSS 服务器 PutObjectRequest request = new PutObjectRequest(bucketName, objectName, bytes); ossClient.putObject(request); System.out.println("Upload jpg to OSS successfully!"); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭 OSS 客户端 ossClient.shutdown(); } } } ``` 在以上示例代码中,需要将 `yourEndpoint`、`yourAccessKeyId`、`yourAccessKeySecret`、`yourBucketName`、`yourObjectName` 和 `yourFilePath` 替换为实际值。需要注意的是,`yourObjectName` 是上传到 OSS 服务器后的对象名称,可以根据需要自行设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值