一、前言

图片保存到服务器的两种方法:

1、根据图片的 URL 将其保存到服务器的固定位置

2、根据 request.FILES.get("file") 方式从请求中获取上传的图片文件,并将其保存到服务器的固定位置

二、方法

1、图片的 URL

要根据图片的 URL 将其保存到服务器的固定位置可以使用以下示例代码:

import requests

def save_image_from_url(url, save_path):
    try:
        response = requests.get(url, stream=True)
        response.raise_for_status()
        with open(save_path, "wb") as file:
            for chunk in response.iter_content(chunk_size=8192):
                file.write(chunk)
        print("图片保存成功!")
    except requests.exceptions.RequestException as e:
        print("图片下载失败:", str(e))

# 定义图片的 URL
image_url = "http://example.com/image.jpg"

# 定义要保存的文件路径
save_path = "/path/to/save/image.jpg"

# 调用保存图片函数
save_image_from_url(image_url, save_path)

在上述示例中,我们定义了一个名为 save_image_from_url 的函数,该函数接收图片的 URL 和要保存的文件路径作为参数。在函数内部,我们使用 requests.get 方法发送 GET 请求来获取图片数据,并以二进制流的形式进行处理。然后,我们将获取的数据逐块写入到文件中。最后,函数将输出图片保存成功的消息。

通过调用 save_image_from_url 函数,您可以将指定 URL 的图片保存到指定的路径 save_path 中。请确保将 image_url 替换为实际的图片 URL,将 save_path 替换为要保存的文件路径。

2、file类型图片

根据 request.FILES.get("file") 方式从请求中获取上传的图片文件,并将其保存到服务器的固定位置,可以使用以下示例代码:

def save_uploaded_image(file, save_path):
    try:
        with open(save_path, "wb") as destination:
            for chunk in file.chunks():
                destination.write(chunk)
        print("图片保存成功!")
    except Exception as e:
        print("图片保存失败:", str(e))

# 获取上传的文件对象
uploaded_file = request.FILES.get("file")

# 定义要保存的文件路径
save_path = "/path/to/save/image.jpg"

# 调用保存图片函数
save_uploaded_image(uploaded_file, save_path)

在上述示例中,我们定义了一个名为 save_uploaded_image 的函数,该函数接收上传的文件对象和要保存的文件路径作为参数。在函数内部,我们使用 open 函数以二进制写入模式打开目标文件 save_path,然后通过遍历文件对象的块数据,并逐块写入到文件中。最后,函数将输出图片保存成功的消息。

通过调用 save_uploaded_image 函数,并传递 request.FILES.get("file") 获取到的文件对象以及指定的保存路径,您可以将上传的图片保存到指定的服务器固定位置中。请确保将 save_path 替换为实际的文件保存路径。