oss 上传图片名有中文在 url 中会转码,怎么处理成中文
时间: 2023-05-20 20:01:00 浏览: 135
在 URL 中使用中文字符时,需要进行 URL 编码,否则会出现乱码或无法识别的情况。对于 OSS 上传图片名中包含中文的情况,可以使用 Java 中的 URLEncoder 类对图片名进行编码,然后再将编码后的字符串作为 URL 的一部分进行上传。具体代码如下:
String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
String url = "http://your-bucket.oss-cn-hangzhou.aliyuncs.com/" + encodedFileName;
ossClient.putObject(url, inputStream);
其中,fileName 是包含中文的图片名,ossClient 是阿里云 OSS 的 Java SDK 客户端对象,inputStream 是图片的输入流。
相关问题
oss 上传图片名有中文在 url 中会转码,怎么处理
您可以使用 encodeURIComponent() 函数将中文字符编码为 URL 安全的格式,例如:
var fileName = '中文.jpg';
var encodedFileName = encodeURIComponent(fileName);
var url = 'https://example.com/upload/' + encodedFileName;
这样就可以避免中文字符在 URL 中出现问题了。
Android端如何获取到上传到OSS中的图片的url
您可以通过使用阿里云提供的 OSS SDK,在 Android 端进行上传图片操作,并在上传成功后,通过调用 getPublicUrl 方法获取图片的公共 URL。代码示例如下:
```
// 初始化 OSSClient
String endpoint = "yourEndpoint";
OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider("yourAccessKeyId", "yourAccessKeySecret");
OSS oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
// 构造上传请求
String objectKey = "yourObjectKey";
String localFile = "yourLocalFilePath";
PutObjectRequest put = new PutObjectRequest("<yourBucketName>", objectKey, localFile);
// 上传图片并获取公共 URL
try {
PutObjectResult result = oss.putObject(put);
String publicUrl = oss.getPublicUrl("<yourBucketName>", objectKey).toString();
} catch (ClientException e) {
// 上传过程中出现异常
} catch (ServiceException e) {
// 服务端出现异常
}
```
请注意,上述代码中 `yourEndpoint`、`yourAccessKeyId`、`yourAccessKeySecret`、`yourBucketName`、`yourObjectKey` 以及 `yourLocalFilePath` 都需要替换成您自己的阿里云 OSS 相关信息。