龙空技术网

阿里云OSS上传图片不能打开的解决办法

鹅是程序猿 181

前言:

如今我们对“文件上传成功为什么看不了”大约比较关注,同学们都需要剖析一些“文件上传成功为什么看不了”的相关资讯。那么小编也在网摘上搜集了一些关于“文件上传成功为什么看不了””的相关知识,希望大家能喜欢,朋友们一起来学习一下吧!

最近项目需要把附件部署到阿里云oss,集成过程中发现上传的图片不能直接打开预览,只能下载到本地保存。

解决办法:设置ContentType

var endpoint = "阿里云OSS EndPoint";            // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。            var accessKeyId = "阿里云OSS AccessKeyId";            var accessKeySecret = "阿里云OSS AccessKeySecret";            // 填写Bucket名称。            var bucketName = "阿里云OSS BucketName";            var client=new OssClient(endpoint, accessKeyId, accessKeySecret);            // 创建上传文件的元信息,可以通过文件元信息设置HTTP header。            ObjectMetadata meta = new ObjectMetadata();            string contentType = IOHelper.GetContentType(Path.GetExtension(path));            meta.ContentType = "image/jpeg";//这里可自行根据附件格式封装方法获取            //meta.ContentEncoding = "utf-8";            var objectName = "upload/1.txt";  //这里需要注意,本地一般用/开头,但是阿里云oss不能用/开头           // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。            var localFilename = IOHelper.MapPath(path);            client.PutObject(bucketName, objectName, localFilename, meta);

meta.ContentType = "image/jpeg";//这段是关键,不定义的话阿里云oss会默认application/octet-stream,所有附件都会被当成二进制流(或不确定文件类型)下载。

还有一个注意点是objectName不能用斜划线/开头,往往我们以前做的本地上传都是/开头的,这里需要注意处理一下,否则阿里云会返回错误。

标签: #文件上传成功为什么看不了