我尝试restful服务器,一个人可以上传图片,通过使用django-piston,我可以上传,获取,发布信息restful,但不知道如何上传图片。
发布于 2010-11-05 22:56:18
差不多吧。
从技术上讲,这只是一个http post。
发布于 2010-11-07 11:23:40
一方面,是的。如果您拥有图像数据,则可以通过post将其发送给知道如何处理它的处理程序;如果您操作得当,理论上应该可以在request.FILES中将其提供给您的处理程序。简单的HTTP。
从另一方面来说,没有。为了进行这样的AJAX上传,您必须以某种方式获得图像数据,而无需用户实际提交表单。这就是为什么"ajax上传表单“很难实现的原因,并且通常使用隐藏iframe这样的技巧来完成它们的工作。
据我所知,只有Firefox和它的gecko类允许通过File object's getAsBinary()方法访问文件字段的二进制内容。
发布于 2010-11-07 12:42:07
你当然可以做这个帖子。文件将在request.FILES中可用(活塞不会妨碍到这一点)。
为了完成PUT,我们必须对piston进行一些修改,以支持x-method-override头。这就是我所做的,从闪存中允许PUT和DEL。(别忘了在做POST时添加头部,让它被解释为PUT )
下面是一些中间件示例:
class x_http_methodoverride_middleware():
def process_request(self, request):
if 'HTTP_X_HTTP_METHODOVERRIDE' in request.META:
newMethod = request.META['HTTP_X_HTTP_METHODOVERRIDE']
if 'PUT' == newMethod.upper():
request.method = 'PUT'
request.META['REQUEST_METHOD'] = 'PUT'
request.PUT = request.POST
if 'DELETE' == newMethod.upper() or 'DEL' == newMethod.upper():
request.method = 'DELETE'
request.META['REQUEST_METHOD'] = 'DELETE'
request.DELETE = request.POST(代码来自一张打开的活塞票,这里是http://bitbucket.org/jespern/django-piston/issue/83/use-x-http-method-override-to-override-put )
https://stackoverflow.com/questions/2837483
复制相似问题