当前位置: 首页 > news >正文

Python总结上传图片到服务器并保存的两种方式

一、前言

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

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

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

二、方法

1、图片的 URL

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

import requestsdef 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 替换为实际的文件保存路径。

http://www.lryc.cn/news/163587.html

相关文章:

  • 【ETH】以太坊合约智能合约逆向方案
  • C高级Day5
  • AI绘画:Midjourney超详细教程Al表情包超简单制作,内附关键词和变现方式
  • Linux dup dup2函数
  • 设计模式系列-外观模式
  • DBeaver 下载、安装与数据库连接(MySQL)详细教程【超详细,保姆级教程!!!】
  • 使用adjustText解决标签文字遮挡问题python
  • [论文笔记]SiameseNet
  • 只有个体户执照,可以用来在抖音开店吗?抖店开通问题解答
  • 微服务高可用容灾架构设计
  • 记录docker 部署nessus
  • qt 正则表达式
  • l8-d13 UNIX域套接字
  • @RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
  • FL Studio Producer Edition 21.0.3.3713中文完整破解版功能特点及安装激活教程
  • Mybatis 动态语言 - mybatis-velocity
  • Fourier傅里叶变换的线性性质和位移性质
  • # 磁盘引导方式相关知识之BIOS、msdos、MBR、UEFI、gpt、esp、csm
  • Java中同时POST文件和提交JSON数据的方法
  • 【React】React获取URL参数,根据URL参数隐藏页面元素
  • 第68步 时间序列建模实战:ARIMA建模(Matlab)
  • Gin学习记录3——模版与渲染
  • Python算法练习 9.11
  • 2023年中秋节和国庆节放假几天?用待办软件记录放假安排并提醒
  • 使用Python实现一个完整的声音采样和模拟,使用采样声音播放输入的文字,实现代码进行详细注释,并进行测试
  • 测试----计算机网络
  • SVN 索引版本与打包版本号不匹配
  • HummerRisk V1.4.1 发布
  • php的html实体和字符之间的转换
  • docker-compose deploy 高可用 elasticsearch TLS