常见的媒体格式类型
text/html | HTML 格式 |
text/plain | 纯文本格式 |
text/xml | XML 格式 |
image/gif | gif 图片格式 |
image/jpeg | jpg 图片格式 |
image/png | png 图片格式 |
application/xhtml+xml | XHTML 格式 |
application/xml | XML 数据格式 |
application/atom+xml | Atom XML 聚合格式 |
application/json | JSON 数据格式 |
application/pdf | pdf 格式 |
application/msword | Word 文档格式 |
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('转换失败')
}
})