Skip to content

常见的媒体格式类型

text/htmlHTML 格式
text/plain纯文本格式
text/xmlXML 格式
image/gifgif 图片格式
image/jpegjpg 图片格式
image/pngpng 图片格式
application/xhtml+xmlXHTML 格式
application/xmlXML 数据格式
application/atom+xmlAtom XML 聚合格式
application/jsonJSON 数据格式
application/pdfpdf 格式
application/mswordWord 文档格式
application/octet-stream二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
multipart/form-data需要在表单中进行文件上传时

json 对象转 formData

js
let obj = {
  id: "001",
  name: "呆呆",
  age: "18",
  sex: "女",
}

const formData = new FormData()
// 逐个转换
formData.append("id", obj.id)
formData.append("name", obj.name)


// 所有属性值转换
// 方式1
for (let key in obj) {
  formData.append(key, obj[key])
}
// 方式2
Object.keys(obj).map((key) => {
  formData.append(key, obj[key])
})

FormData 是一种特殊类型的对象,它不可字符串化,不能仅使用 console.log 打印出来

js
// 获取值
formData.get("id")

formData.forEach((value, key) => {
	console.log("key %s : value %s", key, value)
})

formData 对象转 json

js
let jsonObj = {}
formData.forEach((value, key) => (jsonObj[key] = value))

网络图片地址转 File 对象

js
// 引入 axios
import axios from 'axios'

// 将网络图片地址转换为 File 对象的函数
async function imageUrlToFile(url, fileName) {
  try {
    // 第一步:使用 axios 获取网络图片数据
    const response = await axios.get(url, { responseType: 'arraybuffer' })
    const imageData = response.data

    // 第二步:将图片数据转换为 Blob 对象
    const blob = new Blob([imageData], {
      type: response.headers['content-type']
    })

    // 第三步:创建一个新的 File 对象
    const file = new File([blob], fileName, { type: blob.type })

    return file
  } catch (error) {
    console.error('将图片转换为File对象时发生错误:', error)
    throw error
  }
}

// 示例使用
const imageUrl = 'https://example.com/path/to/image.jpg'
const filename = 'image.jpg'
imageUrlToFile(imageUrl, filename).then((file) => {
  if (file) {
    console.log('转换成功')
  } else {
    console.log('转换失败')
  }
})

welcome to zhudaidai's blog!