一、前言
图片保存到服务器的两种方法:
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
替换为实际的文件保存路径。