web.py获取上传文件名的正确方法_python

直接切入主题,从HTML页面上传文件,Python接收处理。但其中发现有些小问题,把它写出来,算是积累吧!

HTML页面代码:

复制代码 代码如下:

<form action="/admin/addgoodsaction/" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
</form>

Python处理部分代码:

复制代码 代码如下:

i=web.input()
return i.image.filename

执行结果切提示:

复制代码 代码如下:

<type 'exceptions.AttributeError'> at /admin/addgoodsaction/
'str' object has no attribute 'filename'

提示这个对象没有找到filename这个属性,一开始以为是接收对象错了,于是我直接

复制代码 代码如下:

i=web.input()
return i.image

结果能正常打印上传的图片。证明接收对象没有错误,可为什么接收的对象正确,却提示没有filename这个属性呢?
我改写了一下代码:

复制代码 代码如下:

i=web.input(image={})
return i.image.filename

上传一个hello.jpg的图片,结果打印hello.jpg,问题解决。从以上代码看如果不初始化image对象就找不到filename这个属性,而初始化以后才能获取filename属性从而获取上传的文件名。

时间: 2024-12-25 07:01:12

web.py获取上传文件名的正确方法_python的相关文章

php获取上传文件名的文件类型

php教程获取上传文件名的文件类型 $imgname = $_FILES["file"]["name"]; //获取上传的文件名称 $filetype = pathinfo($imgname, PATHINFO_EXTENSION);//获取后缀 $newname = date("Ymdhis").".".$filetype; //构建新名称 再看 $file = 'www.111cn.net.gif'; echo getfi

django1.8使用表单上传文件的实现方法_python

Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. 在django中我们可以采用Form类来处理表单,通过实例化处理和在模板中渲染,就可以轻松完成表单的需求,采用django的表单处理方式,能帮我们省去很多的工作,比如验证不能为空,或者要符合某种模式的输入才有效,这些处理起来非常方便,不用自己再单独写代码去验证表单的数据正确性,所以在开发中比较常用,

web.py中调用文件夹内模板的方法_python

web.py的模板使用非常容易,但有时候我们需要做目录层级以便管理.那么如何使用目录层级的模板呢? 通常我们使用模板的时候先声明模板文件夹 复制代码 代码如下: render=web.template.render('templates') 使用templates文件夹下index.html模板 复制代码 代码如下: return render.index() 使用templates文件夹下list.html模板 复制代码 代码如下: return render.list() 以上所有的html

Python获取脚本所在目录的正确方法_python

1.以前的方法 如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数. 如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得.实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入sys.path. 具体来说,如果你在C:\test目录下执行python getpath\get

web py-web.py文件上传遇到问题

问题描述 web.py文件上传遇到问题 期末作业打算用web.py写一个可以上传图片的网站,但是在上传图片的时候只能得到文件名,得不到选定的文件. python代码如下 class signin: def GET(self): return render.layout(render.header(False,"",""),render.singin("")) def POST(self): post=web.input(image={}) pri

jQuery获取上传文件的名称的正则表达式_jquery

方法一: $('input[type="file"]').on('change', function() { var reg = /[^\\\/]*[\\\/]+/g; //匹配文件的名称和后缀的正则表达式 var name = $(this).val().replace(reg, ''); var postfix = /\.[^\.]+/.exec(name);//获取文件的后缀 var text =name.substr(0,postfix['index']);//获取没有后缀的名

用js来获取上传的文件名纯粹是为了美化而用_javascript技巧

为啥要用js来获取上传的文件名呢?其实纯粹是为了美化,友好, 但是,可不是网上流传的那样,用 path.substring(path.lastIndexOf('/')+1) ; 这个样在工作的时候会出现不少问题. 比如,firefox的input表单的value值默认就可以获取到文件名,而ie 则显示文件路径. 所以要区别对待,在firefox下 lastIndexOf('/')得到的是-1,而在ie下,目录显示的又是反斜杠,\,当然在Linux 下,其他浏览器获取到的又是正斜杠 / ( 暂时未

jQuery获取上传文件的名称的正则表达式

  在Web开发中,经常会涉及到文件上传.文件上传时通常都要验证文件的有效性,这个通常就要用正则表达式来判断. 方法一: ? 1 2 3 4 5 6 7 $('input[type="file"]').on('change', function() { var reg = /[^/]*[/]+/g; //匹配文件的名称和后缀的正则表达式 var name = $(this).val().replace(reg, ''); var postfix = /.[^.]+/.exec(name

C#实现Web文件的上传

web|上传    C#实现Web文件的上传-1using System;using System.Data;using System.Data.SqlClient;using System.Web.UI.HtmlControls;using System.Drawing.Imaging;using System.Configuration;using System.Drawing;namespace zhuanti{/// <summary>/// 这是一个用于玩家投稿中实现玩家上传文件功能