Как заставить Django сохранить изображение в статическом фолдере
У меня есть представление, которое получает изображение и сохраняет его во временной папке. После этого я выполняю некоторую обработку изображения и сохраняю его в другой папке. Но я не могу использовать его, потому что он не находится в статическом фолдере приложения, он считается небезопасным и выдает сообщение об ошибке. Этот код работает, но путь жестко закодирован.
img = request.FILES["image"]
img_extension = os.path.splitext(img.name)[1]
# This will generate random folder for saving your image using UUID
save_path = 'D:/Photo/GFPGAN/inputs/whole_imgs'
if not os.path.exists(save_path):
# This will ensure that the path is created properly and will raise exception if the directory already exists
os.makedirs(os.path.dirname(save_path), exist_ok=True)
# Create image save path with title
uui = str(uuid.uuid4())
img_save_path = "%s/%s%s%s" % (save_path, "image", uui, img_extension)
with open(img_save_path, "wb+") as f:
for chunk in img.chunks():
f.write(chunk)
subprocess.call('python D:/Photo/GFPGAN/inference_gfpgan.py --upscale 2 --test_path D:/Photo/GFPGAN/inputs/whole_imgs --save_root D:/Photo/GFPGAN/results', shell=True)
shutil.move('D:/Photo/GFPGAN/results/restored_imgs/image'+uui+'.jpg', 'C:/Users/rapha/OneDrive/Área de Trabalho/Harvard/CSW/commerceTest/cs50-commerceM/auctions/static/auctions/images/images'+uui+'.jpg')
listing = form.save(commit=False)
print(img_save_path)
listing.restoredimage = 'C:/Users/rapha/OneDrive/Área de Trabalho/Harvard/CSW/commerceTest/cs50-commerceM/auctions/static/auctions/images/images'+uui+'.jpg'
#listing.restoredimage = cv2.imread("D:/Photo/GFPGAN/results/restored_imgs/image.jpg")
listing.restoredimage = 'C:/Users/rapha/OneDrive/Área de Trabalho/Harvard/CSW/commerceTest/cs50-commerceM/auctions/static/auctions/images/images'+uui+'.jpg'
listing.owner = user
listing.save()
return HttpResponseRedirect(reverse("index"))
Как я могу сохранить обработанное изображение по правильному пути.
Это ошибка: Exception Type: SuspiciousFileOperation
Попробуйте внедрить это в свои модели
upload_to='Where you wana save the image. Example: /images. And it will save the image in your file where your project is'