[英]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.