可能是因为在上传文件时,没有正确设置文件类型导致上传失败。在使用 JavaScript 上传文件到 OSS 时,需要在上传请求中设置正确的'Content-Type'头部信息。

下面是一个示例代码,演示如何使用 JavaScript 上传文件到 OSS 并设置正确的'Content-Type':

// 创建 OSS 实例
var client = new OSS({
  region: '<your region>',
  accessKeyId: '<your accessKeyId>',
  accessKeySecret: '<your accessKeySecret>',
  bucket: '<your bucket name>'
});

// 获取文件类型
function getFileType(file) {
  var fileType = file.type;
  if (!fileType) {
    var fileName = file.name;
    var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
    fileType = 'image/' + ext.toLowerCase(); // 根据文件名后缀自动判断文件类型,这里以图片类型为例
  }
  return fileType;
}

// 上传文件到 OSS
function uploadFile(file) {
  var fileType = getFileType(file);
  
  // 设置上传请求的'Content-Type'
  var options = {
    headers: {
      'Content-Type': fileType
    }
  };
  
  // 生成文件名
  var fileName = '<your file name>';
  
  // 执行上传
  client.put(fileName, file, options).then(function(result) {
    console.log('上传成功', result);
  }).catch(function(err) {
    console.log('上传失败', err);
  });
}

// 处理文件选择事件
function handleFileSelect(event) {
  var files = event.target.files;
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    uploadFile(file);
  }
}

// 监听文件选择事件
document.getElementById('fileInput').addEventListener('change', handleFileSelect, false);

在以上示例中,uploadFile函数用于上传文件到 OSS,其中使用getFileType函数获取文件类型,并将其设置为上传请求的'Content-Type'。你可以根据自己的需求修改文件类型的获取逻辑。

另外,你需要将<your region><your accessKeyId><your accessKeySecret><your bucket name><your file name>替换为你自己的实际信息。

希望这能帮助你解决问题。如果问题仍然存在,请提供更多详细信息以便更好地帮助你。

JS 资源文件上传 OSS 带有文件类型的地址 无法上传成功:解决方法和示例代码

原文地址: https://www.cveoy.top/t/topic/pkin 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录