当前位置:首页 » 文件管理 » 文件上传post

文件上传post

发布时间: 2022-10-21 08:42:01

❶ 如何在 python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:
easy_install poster

装完之后,安装下面代码就可以实现post表单上传文件了:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

# 在 urllib2 上注册 http 流处理句柄
register_openers()

# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 <input> 标签的 name 参数设置

# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})

# 创建请求对象(localhost服务器IP地址,5000服务器端口)
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()

❷ 如何在 Python 中模拟 post 表单来上传文件

  1. 首先要知道表单数据是以什么形式组合起来POST到后台的,然后要知道文件的编码格式,一般来讲,这些东西都在header里面有

  2. 然后要找到upload接口长啥样子

  3. 调用requests包的post方法,拼接所需要的data和headers模拟上传,如果需要cookie,需要获取

eg:

data = 表单数据+文件

headers = {'': '', '': ''}

cookie = requests('登录接口', data=data, headers=headers).cookies


req = requests('POST接口', data=data, headers=headers, cookies=cookie)

❸ 如何在 Python 中模拟 post 表单来上传文件

最近有个将文件上传到内部web服务器上的任务,于是参考了网上部分源码用python写了这个小程序,代码如下:

[python]view plain

  • #coding:utf-8

  • '''''

  • Createdon2015.3.19

  • @author:damofy

  • '''

  • importos

  • importtime

  • importsys

  • importurllib2

  • '''''

  • filename待上传的文件

  • fieldname表单域中的name属性

  • '''

  • defCreateBody(filename,fieldname,strBoundary):

  • bRet=False

  • sData=[]

  • sData.append('--%s'%strBoundary)

  • #'Content-Disposition:form-data;name="uploadfile";filename="XX-Net-1.3.6.zip"'

  • sData.append('Content-Disposition:form-data;name="%s";'%fieldname+'filename="%s"'%os.path.basename(filename))

  • sData.append('Content-Type:%s '%'application/octet-stream')

  • try:

  • pFile=open(filename,'rb')

  • sData.append(pFile.read())

  • sData.append('--%s-- '%strBoundary)

  • bRet=True

  • finally:

  • pFile.close()

  • returnbRet,sData

  • defuploadfile(http_url,filename,fieldname):

  • ifos.path.exists(filename):

  • filesize=os.path.getsize(filename)

  • print('file:'+filename+'is%dbytes!'%filesize)

  • else:

  • print('file:'+filename+'isn'texists!')

  • returnFalse

  • strBoundary='---------------------------%s'%hex(int(time.time()*1000))

  • bRet,sBodyData=CreateBody(filename,fieldname,strBoundary)

  • ifTrue==bRet:

  • http_body=' '.join(sBodyData)

  • stReq=urllib2.Request(http_url,http_body)

  • stReq.add_header('User-Agent','Mozilla/5.0')

  • stReq.add_header('Content-Length:','%d'%filesize)

  • stReq.add_header('Content-Type','multipart/form-data;boundary=%s'%strBoundary)

  • resp=urllib2.urlopen(stReq,timeout=5)

  • #getresponse

  • msg=resp.read()

  • print("Responsecontent: "+msg)

  • else:

  • print("CreateBodyfailed!")

  • returnbRet

  • if__name__=='__main__':

  • iflen(sys.argv)>2:

  • http_url=sys.argv[1]

  • filename=sys.argv[2]

  • else:

  • print('pythonupload.pyhttp://10.20.131.23/upload./test.dat')

  • sys.exit()

  • #参数3"uploadfile"是post表单中的name属性,需要与服务端保持一致

  • uploadfile(http_url,filename,'uploadfile')



❹ 如何用POST方法上传文件

POST方法上传文件 随着php不断的完善,PHP对文件上传的支持也越来越完美,在PHP 4.0.3以前我们只能用() 和 is_uploaded_file()方法结合来上传文件,呵呵,其实就是这样我们也会感觉到PHP相对于ASP来说上传文件要方便很多,这也就是本人选择PHP的一点小小的引以为豪的地方。PHP 4.0.3之后PHP又出了一个新函数move_uploaded_file()。上传文件相对来说又简便了不少,只要这一个函数就行(我可不是说上传文件系统只要就一个函数就足够了,大家可不要误解我的意思,我的意思是move_uploaded_file是上传文件的一个核心函数)。 好了,我们看一个三个函数的讲解(资料来自:PHP手册)。 (string source,string desk); 将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。 例: if (!($file, $file.'.bak')) { print ("failed to $file...<br>\n"); } is_uploaded_file(string filename) 如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。 move_uploaded_file(string filename, string destination) 本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。 由三个函数的解释就可以得到一个结论,move_uploaded_file()是()和is_uploaded_file()函数的结合 讲了这么半天大家用起这三个函数可能还会有些生疏,下面给大家两个例子: 首先,建立一个前台页面,命名为index.html Code代码如下: <form enctype="multipart/form-data" action="_URL_" method="post"> Send this file: <input name="filename" type="file"> <input type="submit" value="Send File"> </form> 1,下面是关于()和is_uploaded_file()方法上传文件的方法(保存为:.php,上传文件需要将index.html中的_URL_改为.php) Code代码如下: <?php $path="./uploadfiles/"; if(is_uploaded_file($filename)) //特别注意这里,传递给is_uploaded_file的为$filename,可不要传递$_FILES["filename"]["name"] { $file1=$_FILES["filename"]["name"]; //注意这里$_FILES[]方法为PHP4.1.0及以上版本支持,PHP以下的版本要用$HTTP_POST_FILES[]方法 $file2=$path.time().$file1; $flag=1; } if($flag) $result=($_FILES['filename']['tmp_name'],$file2); if($result) echo "上传成功!"; ?> 2,下面是关于move_uploaded_file()方法上传文件的方法(保存为:move.php,上传文件需要将index.html中的_URL_改为move.php) Code代码如下: <?php $path="./uploadfiles/"; if($_FILES["filename"]["name"]){ $file1=$_FILES["filename"]["name"]; $file2 = $path.time().$file1; $flag=1; } if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2); //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件 if($result) echo "上传成功!"; ?> 文件上传就讲到这里了,这只是两个小程序,其实要完成文件上传所要的代码可不是这些就能了事的。一般还要有文件大小限制,文件扩展名选取,还有一些其它的安全方案。

❺ 如何在 Python 中模拟 post 表单来上传文件

模拟post请求可以用requests库,所谓的上传文件,其实先读取文件,把里面的数据赋值给一个参数,然后再写到一个表单里面,最后发出去
import requests
files = {'file': open(file_path, 'rb')}
r = requests.post(url, files=files)

❻ 为什么进行文件上传时只能使用post而不能用get

顾名思义:get,得到,取得,这时是下传到本地。
POST,邮寄,寄出去,上传文件。

❼ 如何在 Python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:

easy_installposter

装完之后,安装下面代码就可以实现post表单上传文件了:

fromposter.encodeimportmultipart_encode
fromposter.streaminghttpimportregister_openers
importurllib2

#在urllib2上注册http流处理句柄
register_openers()

#开始对文件"DSC0001.jpg"的multiart/form-data编码
#"image1"是参数的名字,一般通过HTML中的<input>标签的name参数设置

#headers包含必须的Content-Type和Content-Length
#datagen是一个生成器对象,返回编码过后的参数
datagen,headers=multipart_encode({"image1":open("DSC0001.jpg","rb")})

#创建请求对象(localhost服务器IP地址,5000服务器端口)
request=urllib2.Request("http://localhost:5000/upload_image",datagen,headers)
#实际执行请求并取得返回
printurllib2.urlopen(request).read()

❽ php上传文件为什么一定要用post

传输机制限定必须要用post,并且并须要加multipart/form-data,不然服务器得不到需要上传的文件

❾ 如何在 Python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:
easy_install poster
装完之后,安装下面代码就可以实现post表单上传文件了:

from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

# 在 urllib2 上注册 http 流处理句柄
register_openers()

# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 <input> 标签的 name 参数设置

# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})

# 创建请求对象(localhost服务器IP地址,5000服务器端口)
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()

热点内容
比亚迪唐dmi哪个配置性价比 发布:2024-10-07 15:19:28 浏览:901
编译器按变量 发布:2024-10-07 15:07:03 浏览:773
怎么忘记电脑wifi密码怎么办 发布:2024-10-07 15:02:18 浏览:424
安卓开发java开发 发布:2024-10-07 15:01:29 浏览:93
工业级安卓主板价格怎么样 发布:2024-10-07 14:07:57 浏览:626
编程先乘除 发布:2024-10-07 13:58:45 浏览:269
编译内核时发生循环编译 发布:2024-10-07 13:58:43 浏览:495
当下笔记本电脑什么配置好 发布:2024-10-07 12:57:33 浏览:470
安卓倒车轨迹怎么调 发布:2024-10-07 12:54:47 浏览:914
问道刷道队伍怎么配置 发布:2024-10-07 12:09:17 浏览:326