Düzenleme: Yukarıda seçilen cevabı kullanın - Aşağıdaki kod soru için çalışıyor ama tavsiye edilmez.
yüklediğiniz resim dosyası bulunabilir:
request.FILES['image'] # assuming input name is called 'image'
Size Resim nesneyi dönmez, bunun yerine bir uploadedfile nesnesi. Belgelerin bu bölümünü okuyabilirsiniz (Django 1.3.x kullanıyor olduğunuzu farz ediyorum): https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/#handling-uploaded-files
UploadedFile nesnesinde bulunan alanları ve yöntemleri ve ayrıca dosya yükleme işlemlerini el ile ele almanın ortak bir yolunu kapsar. Görüntü dosyasını bir dosya nesnesine yazmak ve daha sonra ImageField'ınıza kaydetmek için aynı yöntemi kullanabilirsiniz.
Aşağıdaki kod çalışmalıdır, ancak güvenli kod değildir. Varsa, * nix makinesini kullandığınızı varsayarak, hedef dosyayı başka bir yere kaydedin.
@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
diğer şeyler not almak: Mutlaka işe yaraması için aşağıdaki öznitelik vardır oluştururlar:
<form enctype="multipart/form-data" ... >
ben normal olmak bu kullanım hatırlamıyorum, ama gerçekten, Formlar tavsiye edilir. Eğer isteği işlemek için ModelForm
kullanamaz anlamına gelmez verilerini göndermek için gerçek bir HTML formunu kullanarak değiliz diye
bakmak [django-photologue] (http://code.google.com/p/django-photologue/), yapmak istediğiniz her şey zaten bitmiştir :) – juliomalegria
teşekkürler, tüm bu özelliklere ihtiyacım yok, en temelini arıyorum imageField'in kullanımı –