繁体   English   中英

HTTP PUT文件和数据

[英]HTTP PUT file and data

在我的RESTful API中说我有一张图片,用户可以通过PUT请求更新。

让我们说这些图片中的每一个都有一个自定义名称,用户可以分配它们,以便他们可以轻松浏览它们。

我想做的是发送包含更新文件的放置请求和图片的新名称,但是我不确定如何在从php://读取时将PHP从新名称中分离出更新的文件输入

有谁知道如何做到这一点?

将标量参数(即旧名称,新名称)放入查询字符串中。

看看AtomPub( http://tools.ietf.org/html/rfc5023 ),特别是编辑媒体链接。 它并没有给你你想要的东西,但也许你可以适应它。

将多部分文档输入到原子条目应该在语义上是可行的,其中多部分的第一部分是用于更新标题的原子条目XML。 该条目的内容元素可以使用cid:URI指向第二个多部分(图像数据)( http://tools.ietf.org/html/rfc2392

Slug标题(也在RFC 5023中)也可能是一个开始调查。

Content-Disposition可能还有一些较旧的标题:和标题:您可以搜索。

另一种选择是提出一个具有适当语义的新资源,以及POST或PATCH多部分或结构化文档。

一月

使用SLUG标头执行此操作:

换句话说,Slug标头为客户端提供了一种为新创建的资源建议URI的方法。

URI只能使用一组有限的字符,如果Slug使用合法URI字符集之外的字符,则服务器必须转义这些字符。

两个或多个客户端可能同时尝试使用相同的Slug创建资源,服务器必须为每个资源提供唯一的URI,因此服务器可以选择使用其他字符装饰slug以确保每个资源具有唯一名称。

参考

为什么不使用url作为文件名?

PUT /images/new_image.jpg

如果要在同一请求主体中具有多个内容类型,则使用正确的格式是使用多部分mime将它们全部包装到同一请求主体中。 在这种情况下,支持像multipart mime这样复杂的东西可能有点难以证明。

经过考虑,我认为你需要的是一个带有multipart/form-data的POST请求。 这允许文件和一些标量数据项,而不会在文件数据上产生Base64或URLEncode的开销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM