2024-04-30 02:54:31 发布
网友
发布应用程序(iOS android等)而不是网页表单。
class someImage(models.Model): image = models.ImageField(upload_to= settings.SHARE_IMAGE_UPLOAD_PATH) @csrf_exempt def saveImage(request):
如何写视图?它在post请求中接收图像。 我发现的每件事都与表单相关(服务器新手)
编辑: 请使用上面选择的答案-下面的代码适用于该问题,但不建议使用。
您正在上载的图像文件位于:
request.FILES['image'] # assuming input name is called 'image'
它不会返回图像对象,而是返回UploadedFile对象。您可以阅读这部分文档(我假设您使用的是Django 1.3.x):https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/#handling-uploaded-files
它包括UploadedFile对象中可用的字段和方法,以及手动处理文件上载的常用方法。可以使用相同的方法将图像文件写入文件对象,然后将其保存到ImageField。
下面的代码应该可以工作,但它不是安全的代码。我假设您正在使用*nix machine,如果没有,请将目标文件保存到其他地方。
@csrf_exempt def saveImage(request): # warning, code might not be safe up_file = request.FILES['image'] destination = open('/tmp/' + up_file.name , 'wb+') for chunk in up_file.chunks(): destination.write(chunk) destination.close() img = someImage() img.image.save(up_file.name, File(open('/tmp/' + up_file.name, 'r'))) img.save() # return any response you want after this
其他需要注意的事项:确保表单具有以下属性才能工作:
<form enctype="multipart/form-data" ... >
我不记得这种用法是正常的,但实际上,表单是推荐的。
仅仅因为没有使用实际的HTML表单来提交数据并不意味着不能使用ModelForm来处理请求:
ModelForm
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed from django.utils import simplejson def upload_view(request): if request.method == 'POST': form = UploadForm(request.POST, request.FILES) if form.is_valid(): form.save() result = {'success': True} return HttpResponse(simplejson.dumps(result), mimetype='application/json') else: return HttpResponseBadRequest() else: return HttpResponseNotAllowed(['POST'])
编辑: 请使用上面选择的答案-下面的代码适用于该问题,但不建议使用。
您正在上载的图像文件位于:
它不会返回图像对象,而是返回UploadedFile对象。您可以阅读这部分文档(我假设您使用的是Django 1.3.x):https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/#handling-uploaded-files
它包括UploadedFile对象中可用的字段和方法,以及手动处理文件上载的常用方法。可以使用相同的方法将图像文件写入文件对象,然后将其保存到ImageField。
下面的代码应该可以工作,但它不是安全的代码。我假设您正在使用*nix machine,如果没有,请将目标文件保存到其他地方。
其他需要注意的事项:确保表单具有以下属性才能工作:
我不记得这种用法是正常的,但实际上,表单是推荐的。
仅仅因为没有使用实际的HTML表单来提交数据并不意味着不能使用
ModelForm
来处理请求:相关问题 更多 >
编程相关推荐