广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Cherrypy文件上传非ASCII文件
  • 284
分享到

Cherrypy文件上传非ASCII文件

文件上传文件Cherrypy 2023-01-30 22:01:51 284人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Cherrypy 版本: 18.0.1 由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。 解决的方式也很简单,只需要对文件名

Cherrypy 版本: 18.0.1

由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。

解决的方式也很简单,只需要对文件名使用 ISO-8859-1 编码然后在使用 UTF-8 重新解码即可。

以下是一个完整的例子:

 1 from os import makedirs
 2 from os.path import dirname, join as pathjoin, exists as pathexists
 3 from cherrypy import expose, quickstart, request, config
 4 
 5 HERE = dirname(__file__)
 6 UPLOAD_FOLDER = pathjoin(HERE, 'uploads')
 7 
 8 
 9 def repaire_filename(filename):
10     return filename.encode('ISO-8859-1').decode('utf-8', 'replace')
11 
12 
13 def save_uploadfiles(files, folder=UPLOAD_FOLDER):
14     if not pathexists(folder):
15         makedirs(folder)
16     if not isinstance(files, list):
17         files = [files]
18     for upload in files:
19         if not upload.filename:
20             continue
21         basename = repaire_filename(upload.filename)
22         filename = pathjoin(folder, basename)
23         with upload.file as upload_file, open(filename, 'wb') as to_save:
24             while True:
25                 buf = upload_file.read(8192)
26                 if not buf:
27                     break
28                 to_save.write(buf)
29 
30 
31 @expose
32 def index(upload_files=None):
33     if request.method == 'POST':
34         save_uploadfiles(upload_files)
35     return '''
36 <fORM method="POST" enctype="multipart/form-data">
37 <div><input name="upload_files" type="file" /></div>
38 <div><input name="upload_files" type="file" /></div>
39 <div><input name="upload_files" type="file" /></div>
40 <input type="submit" />
41 </form>
42 '''
43 
44 
45 if __name__ == '__main__':
46     quickstart(index)

 

--结束END--

本文标题: Cherrypy文件上传非ASCII文件

本文链接: https://www.lsjlt.com/news/179829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Cherrypy文件上传非ASCII文件
    Cherrypy 版本: 18.0.1 由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。 解决的方式也很简单,只需要对文件名...
    99+
    2023-01-30
    文件上传 文件 Cherrypy
  • SpringMVC 单文件上传与多文件上传实例
    一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、...
    99+
    2023-05-31
    springmvc 文件上传 多文件上传
  • ThinkPHP6 文件上传
    内置文件上传使用\think\facade\Filesystem类封装方法 目录 简单上传 public存储文件  文件验证 命名规则 使用sha1 使用MD5 使用date 指定文件名称 自定义命名规则 更多上传设置 总结   ...
    99+
    2023-09-14
    php thinkPHP 文件上传
  • PHP---文件上传
    目录 一、文件上传的概念 二、文件上传的步骤 (1)表单的制作 三、$_FILES详解 (1)name (2)tmp_name (3)type (4)error (5)size  四、移动临时文件到目标位置  五、多文件上传 (1)同名表单...
    99+
    2023-09-03
    服务器 运维 php
  • Spring boot实现文件上传实例(多文件上传)
    文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(...
    99+
    2023-05-31
    spring boot 文件上传
  • hyperf3.0 上传文件报错 , 文件头大
    报错信息:  WARNING Port_onRead_http() (ERRNO 7102): Request Entity Too Large: header-length (351) + content-length (2986258)...
    99+
    2023-09-04
    php java 服务器
  • CTFHub-Web-文件上传
    目录 知识点 一、无验证 二、前端验证 三、.htaccess 1、题目简介 2、解题思路 3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接 四、MIME绕过 1、知识点 2、解题思路  五、文件头检查 六...
    99+
    2023-09-05
    php 安全 开发语言 前端 web安全
  • Python ftp上传文件
    以下代码比较简单,对python实现ftp上传文件相关知识感兴趣的朋友可以参考下 #encoding=utf8 from ftplib import FTP #加载ftp模块 IP = '103.240...
    99+
    2022-06-04
    上传文件 Python ftp
  • python ftp 上传文件
    python  ftp 上传文件 #!/usr/bin/env python #-*- coding: utf-8 -*- from ftplib import FTP       #调用 模块 i...
    99+
    2023-01-31
    上传文件 python ftp
  • 文件上传漏洞
    目录 前言 1.原理 2.类型 3.复现 3.1环境 3.1.1函数介绍 3.2过程 3.2.1客户端绕过 3.2.2服务端绕过         黑名单检查后缀         白名单检查后缀 前言 文件上传漏洞是wb安全中经常用到的一...
    99+
    2023-09-03
    安全 网络 web安全 php
  • bugku-web-文件上传
    题目没有太多的描述   简单明了 (它不想要PHP文件) 上传一个其他类型试试看  被拦截了 回想之前我们做过的题目  不可以上传 php文件 说明一共存在三个过滤 请求头部的 Content-Type文件后缀请求数据的Content-...
    99+
    2023-09-13
    php 开发语言 安全 burp 网络
  • 文件上传攻击
    一、原理         文件上传攻击实质上就是拿下网站的控制权,户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 服务器 上上传可执行的动态脚本文件。在我们的日常生活中经常会遇到,例如,我们在上传文件时,后台服务...
    99+
    2023-08-31
    安全
  • 用Python上传文件
    Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的、相关的、不断增长的力量。 Python只是一种语言,语言不能解决业务问题,如工作流、体系结构和物流...
    99+
    2023-01-31
    上传文件 Python
  • SpringMVC的文件上传
    6.SpringMVC的文件上传 6.1-SpringMVC的请求-文件上传-客户端表单实现(应用) 文件上传客户端表单需要满足: 表单项type=“file” 表单的提交方式是post 表单的...
    99+
    2023-08-31
    java 前端 servlet
  • Asp.Net上传文件并配置可上传大文件的方法
    ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。 HtmlInputFile -...
    99+
    2022-11-13
  • SpringBoot实现单文件与多文件上传
    目录一、公共文件存储代码1.FileUploadUtils.java2.FileUtils.java3.MimeTypeUtils.java4.FileException.java5...
    99+
    2022-11-12
  • php如何实现文件夹上传文件
    这篇“php如何实现文件夹上传文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现文件夹上传文件”文章吧。一、什...
    99+
    2023-07-05
  • MobaXterm上传下载文件、文件夹到服务器上
      首先通过SSH与服务器建立连接,不懂的可查阅相关资料,CSDN里有很多介绍。 上传下载文件 可以在命令输入窗口,无需输入命令,按ctrl单击的同时鼠标右键出现以下左图,选择receive file using Z-modem或者send...
    99+
    2023-08-31
    linux
  • php如何上传文件
    这篇文章主要介绍php如何上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类...
    99+
    2023-06-14
  • SQL注入——文件上传
    目录 一,mysql文件上传要点 二,文件上传指令 一句话木马 三,实例 1,判断注入方式  2,测试目标网站的闭合方式: 3,写入一句话木马 4,拿到控制权  一,mysql文件上传要点 1,show variables like '...
    99+
    2023-09-10
    网络安全 php 安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作