當前位置:首頁 » 文件管理 » 文件上傳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()

熱點內容
怎樣刪除小視頻文件夾 發布:2024-05-19 05:49:29 瀏覽:589
開啟php短標簽 發布:2024-05-19 05:44:12 瀏覽:473
android各國語言 發布:2024-05-19 05:42:54 瀏覽:247
微信什麼資料都沒怎麼找回密碼 發布:2024-05-19 05:35:34 瀏覽:907
填志願密碼是什麼 發布:2024-05-19 05:30:23 瀏覽:318
城堡爭霸自動掠奪腳本 發布:2024-05-19 05:22:06 瀏覽:204
asp編程工具 發布:2024-05-19 05:20:36 瀏覽:143
insertpython 發布:2024-05-19 05:12:26 瀏覽:244
androidant編譯 發布:2024-05-19 05:04:11 瀏覽:988
按鍵腳本優化 發布:2024-05-19 04:59:57 瀏覽:752