如何将我上传的文件转换为 json

Posted

技术标签:

【中文标题】如何将我上传的文件转换为 json【英文标题】:How do I convert my uploaded file to json 【发布时间】:2021-12-16 00:05:19 【问题描述】:

我正在编写一个使用 vuejs 作为前端和 laravel 8 作为后端的应用程序

我想让用户从他们的本地计算机中选择一张图片并将其发送到后端。

我想先把它转换成json,然后再发送到服务器

但是当我将其转换为 json 时,json 对象变为空

模板

<input type="file" @change="uploadFile( $event, index, idx )" name="" id="">

Vuejs

export default 
  name: 'CreateCourse',
  setup()
    const file = reactive("file" :'')
    const uploadFile = (e, idx, i) => 
            file.file = e.target.files[0];
            console.log("no json", file.file);
            console.log("Object file is ",JSON.parse(JSON.stringify(file.file)));
        

    const formData = new FormData();
    formData.append("file", file);


    axios.post('http://127.0.0.1:8000/api/v1/courses', formData, 
        headers: 
        'accept': 'application/json',
        'Accept-Language': 'en-US,en;q=0.8',
        'Content-Type': 'multipart/form-data'
        
    ).then(response => 
       
    ).catch(err => 
        NotificationService.error(err.response);
        showLoader(false);
    );
return 
        uploadFile
    
   

没有 json 的 console.log 显示上传的文件,但带有 object 文件的 console.log 显示空的 json 对象。我该怎么办?

【问题讨论】:

【参考方案1】:

该文件为缓冲区格式,需要转换为字符串,因此JSON.parse 将不起作用。 阅读更多here

【讨论】:

我还删除了 JSON.parse 并使用了 JSON.stringify 但它对我不起作用 在尝试 JSON.parse 之前将缓冲区转换为字符串

以上是关于如何将我上传的文件转换为 json的主要内容,如果未能解决你的问题,请参考以下文章

无法将我的 JSON 文件转换为 JS 对象

无法将我的 JSON 文件转换为 JS 对象

如何压缩 json 行文件并上传到 azure 容器?

如何使用php和文件上传将图像转换为二进制字符串?

ASP.NET Core —上传.json文件并转换为List

如何将我的 Eloquent 集合转换为 JSON?