首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中创建一个提供多部分/表单数据文件的JSON

在PHP中创建一个提供多部分/表单数据文件的JSON
EN

Stack Overflow用户
提问于 2021-03-27 06:40:32
回答 2查看 884关注 0票数 1

我想要创建一个流PHP,它发送JSON文件(而不是字符串)。

这里是给定的:

  • 我们有一个现有的PHP,它以application/json MIME类型提供JSON数据。但是,JSON数据有时可能超过6-10 MB,这取决于查询。
  • 另一个应用程序将从PHP的端点请求,但应该接收一个JSON文件,以自动充当多部分流。

我应该如何在PHP中构造我的HTTP头、JSON内容等,以便将JSON作为一个文件而不是一个字符串来提供给它,使它成为一个流服务器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-21 06:45:03

我早该知道,我可以使用AWS S3 Select自动下载批量数据,比如CSV或JSON,使用事件流从BE自动到FE,而不是使用多部分/表单-数据从BE到FE,使用Blob和ReadableStreams来处理来自FE的传入流。

https://aws.amazon.com/blogs/developer/introducing-support-for-amazon-s3-select-in-the-aws-sdk-for-javascript/

票数 0
EN

Stack Overflow用户

发布于 2021-03-27 07:10:57

我创建了一个为multipart/form-data服务的虚拟服务器,前端以字符串的形式下载文件,file.php作为文件的名称。

代码语言:javascript
复制
<?php
header('Content-Type: multipart/form-data');
echo file_get_contents('file.json'); // 49 MB file

在前端收集multipart/form-data之后,它应该将JSON字符串作为流收集起来,并将其转换为JSON对象,如下所示:

代码语言:javascript
复制
const jsonData: string[] = []

// Stream and parse the data inside JSON
const stream = streamableResponse.nodeStream()

// Collect all json string
stream.on('data', (chunk) => {
  jsonData.push(chunk)
})

// Handle error of JSON stream
stream.on('error', (error) => {
  logger.error(`An error occured when getting the file contents for ${fileName}`)
  logger.error(error)
})

// Wait for the stream to finish
stream.on('end', async () => {
   const data = JSON.parse(jsonData)
   console.log(data) // Process object data
}

上面的代码将首先将HTTP响应作为字符串收集,然后再将其转换为解析的JavaScript代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66828689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档