返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/179829.html(转载时请注明来源链接)

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

猜你喜欢
  • 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 服务器
  • Python ftp上传文件
    以下代码比较简单,对python实现ftp上传文件相关知识感兴趣的朋友可以参考下 #encoding=utf8 from ftplib import FTP #加载ftp模块 IP = '103.240...
    99+
    2022-06-04
    上传文件 Python ftp
  • SpringMVC的文件上传
    6.SpringMVC的文件上传 6.1-SpringMVC的请求-文件上传-客户端表单实现(应用) 文件上传客户端表单需要满足: 表单项type=“file” 表单的提交方式是post 表单的...
    99+
    2023-08-31
    java 前端 servlet
  • bugku-web-文件上传
    题目没有太多的描述   简单明了 (它不想要PHP文件) 上传一个其他类型试试看  被拦截了 回想之前我们做过的题目  不可以上传 php文件 说明一共存在三个过滤 请求头部的 Content-Type文件后缀请求数据的Content-...
    99+
    2023-09-13
    php 开发语言 安全 burp 网络
  • 文件上传漏洞
    目录 前言 1.原理 2.类型 3.复现 3.1环境 3.1.1函数介绍 3.2过程 3.2.1客户端绕过 3.2.2服务端绕过         黑名单检查后缀         白名单检查后缀 前言 文件上传漏洞是wb安全中经常用到的一...
    99+
    2023-09-03
    安全 网络 web安全 php
  • 文件上传攻击
    一、原理         文件上传攻击实质上就是拿下网站的控制权,户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 服务器 上上传可执行的动态脚本文件。在我们的日常生活中经常会遇到,例如,我们在上传文件时,后台服务...
    99+
    2023-08-31
    安全
  • CTFHub-Web-文件上传
    目录 知识点 一、无验证 二、前端验证 三、.htaccess 1、题目简介 2、解题思路 3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接 四、MIME绕过 1、知识点 2、解题思路  五、文件头检查 六...
    99+
    2023-09-05
    php 安全 开发语言 前端 web安全
  • 用Python上传文件
    Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的、相关的、不断增长的力量。 Python只是一种语言,语言不能解决业务问题,如工作流、体系结构和物流...
    99+
    2023-01-31
    上传文件 Python
  • python ftp 上传文件
    python  ftp 上传文件 #!/usr/bin/env python #-*- coding: utf-8 -*- from ftplib import FTP       #调用 模块 i...
    99+
    2023-01-31
    上传文件 python ftp
  • PHP cURL 文件上传
    本篇文章将指导如何使用 cURL 和 CURLFile 类将图像文件发送到服务器。 这个想法是将图像文件从一个页面发布到另一个页面上的另一个页面。 Index.php:首先,我们将文件 i...
    99+
    2024-02-27
  • Asp.Net上传文件并配置可上传大文件的方法
    ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。 HtmlInputFile -...
    99+
    2024-04-02
  • SpringBoot实现单文件与多文件上传
    目录一、公共文件存储代码1.FileUploadUtils.java2.FileUtils.java3.MimeTypeUtils.java4.FileException.java5...
    99+
    2024-04-02
  • php如何实现文件夹上传文件
    这篇“php如何实现文件夹上传文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现文件夹上传文件”文章吧。一、什...
    99+
    2023-07-05
  • java如何上传文件
    一:准备好前台页面Upload.html表单 action=上传文件后台接口 method=“post”enctype=“multipart/form-data”,文件输入框 二:加入相应的jar包三:准备接收文件Se...
    99+
    2019-03-25
    java基础 java 上传 文件
  • Node.js实现文件上传
    在工作中碰到了这样的需求,需要用nodejs 来上传文件,之前也只是知道怎么通过浏览器来上传文件, 用nodejs的话, 相当于模拟浏览器的行为。 google 了一番之后, 明白了浏览器无非就是利用htt...
    99+
    2022-06-04
    文件上传 Node js
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作