是否可以在POST Json中附加文件?

时间:2017-07-23 11:15:07

标签: json ajax http http-headers

我有一堆格式为JSON(序列化对象)的数据。 我通过POST方法将此数据发送到服务器,标题为:Content-Type: application/json

是否可以将文件附加到正文请求并立即发送。或者JSON数据建议仅发送文本数据?

2 个答案:

答案 0 :(得分:4)

在此上下文中,content-type标题旨在描述请求正文中的数据类型。 如果您使用application/json,服务器将需要一个JSON正文。

如果您的目标是使用JSON对象和文件发送单个请求,则可以使用JSON结构对文件进行编码(可能是base64。请参阅:Binary Data in JSON String. Something better than Base64

{
  ...
  file: "encoded_content",
  ...
}

或者您可以使用内容类型multipart/form-data。 multipart是包含其他部分的部分。 第一个子部分可能是JSON结构。第二个可能是文件

答案 1 :(得分:1)

尝试将文件作为base64字符串发送到json对象中:

{
"file":"dGhpcyBpcyBhIGZpbGUgc2FtcGxl..." 
}

稍后您可以使用以下内容打开文件:

document.location = 'data:application/pdf;base64,' + file