導航:首頁 > 文件教程 > 模擬表單文件上傳

模擬表單文件上傳

發布時間:2021-04-04 04:43:58

⑴ python如何模擬含有文件上傳的表單

在機器上安裝了 Python 的
setuptools,可以通過下面的命令來安裝 poster:

easy_installposter

裝完之後,就可以像用下面代碼模擬上傳文件表單了:

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")})
#創建請求對象
request=urllib2.Request("http://localhost:5000/upload_image",datagen,headers)
#實際執行請求並取得返回
printurllib2.urlopen(request).read()

⑵ 如何在 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()

⑶ 如何利用curl實現form表單提交 帶文件上傳

//上傳D盤下的來test.jpg文件,文件必須自存在,否則curl處理失敗且沒有任何提示
$data=array('name'=>'Foo','file'=>'@d:/test.jpg');
註:PHP5.5.0起,文件上傳建議使用CURLFile代替@

$ch=curl_init('http://localhost/upload.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);

更多內容請參考:http://www.zjmainstay.cn/php-curl#十模擬上傳文件

js 模擬POST提交enctype="multipart/form-data"類型的表單

只是需要文件上傳才用它的

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");

改成

xmlHttp.setRequestHeader("Content-Type","multipart/form-data;")。

⑸ 請教用Curl 在php 裡面模擬表單提交 文本+文件的寫法


publicfunctioncurl($url,$postFields=null)
{
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FAILONERROR,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
if($this->readTimeout){
curl_setopt($ch,CURLOPT_TIMEOUT,$this->readTimeout);
}
if($this->connectTimeout){
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$this->connectTimeout);
}
//https請求
if(strlen($url)>5&&strtolower(substr($url,0,5))=="https"){
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
}

if(is_array($postFields)&&0<count($postFields))
{
$postBodyString="";
$postMultipart=false;
foreach($postFieldsas$k=>$v)
{
if("@"!=substr($v,0,1))//判斷是不是文件上傳
{
$postBodyString.="$k=".urlencode($v)."&";
}
else//文件上傳用multipart/form-data,否則用www-form-urlencoded
{
$postMultipart=true;
}
}
unset($k,$v);
curl_setopt($ch,CURLOPT_POST,true);
if($postMultipart)
{
foreach($postFieldsas$k=>$v){
if("@"==substr($v,0,1)){
$tempffile=preg_replace('/^@/','',$v);
$advfield[$k]=newCURLFile($tempffile);
}else{
$advfield[$k]=$v;
}
}

curl_setopt($ch,CURLOPT_POSTFIELDS,$advfield);
unset($k,$v,$advfield);
//curl_setopt($ch,CURLOPT_POSTFIELDS,$postFields);//田村改
//curl_setopt($ch,CURLOPT_POSTFIELDS,['file'=>newCURLFile(realpath('image.png'))]);
}
else
{
curl_setopt($ch,CURLOPT_POSTFIELDS,substr($postBodyString,0,-1));
}
}
$reponse=curl_exec($ch);

if(curl_errno($ch))
{
thrownewException(curl_error($ch),0);
}
else
{
$httpStatusCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
if(200!==$httpStatusCode)
{
thrownewException($reponse,$httpStatusCode);
}
}
curl_close($ch);
return$reponse;
}

表單列表是 $postFields 傳入參數

數組,如果有文件 ,就在數組的值 前面加@

已經做好的 集成類 的實現 其他類欄位和方法沒給出,寫不下了。

但是大致的實現過程應該可以看懂了

⑹ 模擬JQUERY多文件上傳效果

<!doctypehtml>
<htmllang="zh">
<head>
<metacharset="utf-8">
<title>HTML5AjaxUploader</title>
<scriptsrc="jquery-2.1.1.min.js"></script>
</head>

<body>
<p><inputtype="file"id="upfile"></p>
<p><inputtype="button"id="upJS"value="用原生JS上傳"></p>
<p><inputtype="button"id="upJQuery"value="用jQuery上傳"></p>
<script>
/*原生JS版*/
document.getElementById("upJS").onclick=function(){
/*FormData是表單數據類*/
varfd=newFormData();
varajax=newXMLHttpRequest();
fd.append("upload",1);
/*把文件添加到表單里*/
fd.append("upfile",document.getElementById("upfile").files[0]);
ajax.open("post","test.php",true);

ajax.onload=function(){
console.log(ajax.responseText);
};

ajax.send(fd);

}

/*jQuery版*/
$('#upJQuery').on('click',function(){
varfd=newFormData();
fd.append("upload",1);
fd.append("upfile",$("#upfile").get(0).files[0]);
$.ajax({
url:"test.php",
type:"POST",
processData:false,
contentType:false,
data:fd,
success:function(d){
console.log(d);
}
});
});
</script>
</body>
</html>
<?php
if(isset($_POST['upload'])){
var_mp($_FILES);
move_uploaded_file($_FILES['upfile']['tmp_name'],'up_tmp/'.time().'.dat');
//header('location:test.php');
exit;
}
?>

⑺ C#代碼模擬Form表單提交同時還得上傳XML文件

不知道理解對不對
有個笨的方法 就是在後台生成js代碼 這個js代碼的功能就是生成表單 讓後再讓這個js代碼觸發form提交事件

閱讀全文

與模擬表單文件上傳相關的資料

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接