當前位置:首頁 » 編程語言 » phppost文件

phppost文件

發布時間: 2023-11-10 13:22:14

『壹』 php怎麼將接收到的post數據發送到另一個php文件中

可以用 Curl、socket、file_get_contents 等方式來發送POST數據

『貳』 php將post過來的$_FILES多張圖片同時保存在同一個文件夾

if(!isset($_FILES['userfile'])){
echo "失敗";

}else{

//文件夾不存在則創建文件夾(文件夾路徑:$dirname)
if (!file_exists($dirname){
mkdir($dirname);
}

$max_files=5; //設置最多上傳文件的個數
//遍歷圖片並存放至文件夾(圖片文件集合$src)
for($i=0;$i<$max_files;$i++){
//如果沒出錯
if($_FILES['userfile']['error'][$i]==0){
//設置完整存放路徑+文件名
$file_path=$dirname. "/" .$_FILES['userfile']['name'][$i];
//圖片正常讀寫就存放至文件夾
if (@fopen($src,'r')){
file_put_contents($file_path, $_FILES['userfile']);
}
}

}

}

『叄』 php如何接收別的伺服器post過來的數據 - 技術問答

通常情況下用戶使用瀏覽器網頁表單向伺服器post提交數據,我們使用PHP的$_POST接收用戶POST到伺服器的數據,並進行適當的處理。但有些情況下,如用戶使用客戶端軟體向服務端php程序發送post數據,而不能用$_POST來識別,那又該如何處理呢?
我們介紹php接受post數據的三種方式:
1.$_POST方式接收數據
$_POST方式是通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。如使用$_POST[『name』]就可以接收到網頁表單以及網頁非同步方式post過來的數據,
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據,也就是表單POST過來的數據。
2.$GLOBALS[『HTTP_RAW_POST_DATA』]方式接收數據
但$GLOBALS[『HTTP_RAW_POST_DATA』]中是否保存POST過來的數據取決於centent-Type的設置,只有在PHP在無法識別的Content-Type的情況下,才會將POST過來的數據原樣地填入變數$GLOBALS[『HTTP_RAW_POST_DATA』]中,像Content-Type=application/x-www-form-urlencoded時,該變數是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數據,也需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變數$http_raw_post_data。
3.php://input方式接收數據
如果訪問原始 POST 數據的更好方法是 php://input。php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的php.ini設置,php://input不能用於 enctype=」multipart/form-data」。對於未指定 Content-Type 的POST數據,則可以使用file_get_contents(「php://input」)來獲取原始數據。事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進制文件流也可以。php://input讀取不到$_GET數據。是因為$

『肆』 求助PHP如何POST提交數據

用PHP向伺服器發送HTTP的POST請求,代碼如下:

<?php
/**
*發送post請求
*@paramstring$url請求地址
*@paramarray$post_datapost鍵值對數據
*@returnstring
*/
functionsend_post($url,$post_data){
$postdata=http_build_query($post_data);
$options=array(
'http'=>array(
'method'=>'POST',
'header'=>'Content-type:application/x-www-form-urlencoded',
'content'=>$postdata,
'timeout'=>15*60//超時時間(單位:s)
)
);
$context=stream_context_create($options);
$result=file_get_contents($url,false,$context);
return$result;
}

使用的時候直接調用上面定義的send_post方法:

$post_data=array(
'username'=>'username',
'password'=>'password'
);
send_post('網址',$post_data);

『伍』 php curl post 上傳文件 接收文件 $_FILES 為空 是伺服器配置問題嗎還是什麼原因

原因找到了。就是$data['img']="@/tmp/1.jpg";這句話

一定要用絕對路徑。

$ch=curl_init();

define('_ROOT',str_replace("\",'/',dirname(__FILE__)));
$data['img']="@"._ROOT."/tmp/1.jpg";
curl_setopt($ch,CURLOPT_URL,"http://www.biubiu.com/huahua.php");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec($ch);
curl_close($ch);
echo$result;

『陸』 php發送get,post請求的幾種方法

POST方法比較適合用於發送一個保密的(比如信用卡號)或者比較大量的數據到伺服器,但速度慢。而Get方法會將所要傳輸的數據附在網址後面,然後一起送達伺服器,因此傳送的數據量就會受到限制且不安全,但是執行效率卻比 Post方法好。具體來說如下:
1、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
2、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
3、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
4、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
5、Get是Form的默認方法。

『柒』 http post參數值字元過長,PHP服務端接收數據為空

Windows 環境下的修改方法

第一步:修改在php下POST文件大小的限制

1.用編輯器打開php.ini

找到:max_execution_time =30 ,這個是每個腳本運行的最長時間,單位秒,修改為:
max_execution_time = 150

找到:max_input_time = 60,這是每個腳本可以消耗的時間,單位也是秒,修改為:
max_input_time = 300

找到:memory_limit = 128M,這個是腳本運行最大消耗的內存,根據你的需求更改數值,這里修改為:
memory_limit = 256M

找到:post_max_size = 8M,表單提交最大數據為8M,此項不是限制上傳單個文件的大小,而是針對整個表單的提交數據進行限制的。限制范圍包括表單提交的所有內容.例如:發表貼子時,貼子標題,內容,附件等…這里修改為:
post_max_size = 20M

找到:upload_max_filesize = 2M ,上載文件的最大許可大小 ,修改為:
upload_max_filesize = 10M

第二步: Apache環境中的檔案上傳大小控制
修改位於Apahce目錄下的httpd.conf
添加下面內容
LimitRequestBody10485760
即10M=10*1024*1024,有的文章中提到應改為 600000000

重新啟動apache,就可以在設置里看到你要的大小

Linux 環境下的修改方法

vim /etc/php.ini
找到 File Uploadsh區域修改以下幾個參數: file_uploads = on;是否允許通過HTTP上傳文件的開關。默認為ON即是開 upload_tmp_dir;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾(moodle可以不改)
upload_max_filesize = 8m ;允許上傳文件大小的最大值.
找到 Data Handling區域,修改 post_max_size = 8m;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
設上述四個參數後,上傳小於8M的文件一般不成問題。但如果上傳大於8M的文件,只還得設置以下參數:
在Resource Limits 區域: max_execution_time = 600;每個PHP頁面運行的最大時間值(秒),默認30秒 max_input_time = 600;每個PHP頁面接收數據所需的最大時間,默認60秒 memory_limit = 8m;每個PHP頁面所吃掉的最大內存,默認8M

『捌』 PHP中put和post區別

1.使用支持和范圍的區別:

PHP提供了對PUT方法的支持,在Http定義的與伺服器的交互方法中,PUT是把消息本體中的消息發送到一個URL,形式上跟POST類似;
PHP 提供對諸如 Netscape Composer 和 W3C Amaya 等客戶端使用的 HTTP PUT 方法的支持;
PHP 4 中,必須使用標準的輸入流來讀取一個 HTTP PUT 的內容;
PUT方法沒有POST方法使用廣泛,但PUT方法卻是向伺服器上傳文件最有效率的方法:
2.上傳過程的區別:

POST上傳文件時,通常需要將所有的信息組合成multipart 傳送過去,然後伺服器再解碼這些信息,解碼過程則必不可少的會消耗內存和CPU資源,這種現象在上傳大文件時尤其明顯;
PUT方法則允許你通過與伺服器建立的socket鏈接傳遞文件的內容,而不附帶其他的信息,效果上更直接;
3.上傳效果的區別:
PHP 接受到 PUT 方法的請求時,會把上傳的文件儲存到和其它用 POST 方法處理過的文件相同的臨時目錄;請求結束時,臨時文件將被刪除。
用來處理 PUT 的 PHP 腳本必須將該文件拷貝到其它的地方;
4. POST和PUT請求根本區別
POST請求的URI表示處理該封閉實體的資源,該資源可能是個數據接收過程、某種協議的網關、或者接收註解的獨立實體;
PUT請求中的URI表示請求中封閉的實體-用戶代理知道URI的目標;
伺服器無法將請求應用到其他資源;
如果伺服器希望該請求應用到另一個URI,就必須發送一個301響應;
用戶代理可通過自己的判斷來決定是否轉發該請求;

『玖』 php大神來,post提交文本或者提交文件

前端 index.php

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>無標題文檔</title>
</head>
<body>
<formmethod="post"enctype="multipart/form-data"action="./manage.php"name="">
<inputtype="file"name="uploadfile"id="uploadfile">
<inputtype="submit"name="upload"id="upload"value="上傳">
<form>
</body>
</html>

後端manage.php與index.php同一層

<?php
if(!empty($_FILES["uploadfile"]['tmp_name'])){
$up_name=$_FILES["uploadfile"];
$up_size=$up_name["size"];
$up_type=$up_name["type"];
$up_path=$up_name['tmp_name'];
$up_fname=$up_name['name'];
$exten=pathinfo($up_fname,PATHINFO_EXTENSION);
$objname=date('YmdHis',time());
$save=$objname.'.'.$exten;
$max_size='314572800';//300M1024*1024*300
$up_limit=array("application/msword","text/html","application/pdf","application/vnd.ms-powerpoint","text/plain","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
if(in_array($up_type,$up_limit)&&$up_size<=$max_size&&$up_size>=0){
if(move_uploaded_file($up_path,$save)){
$msg='上傳成功';

}
else{
$msg='上傳失敗';
}
}
else{
$msg='上傳類型或大小不符合';
}
}
else{
$msg='無上傳文件';
}
echo$msg;
?>
熱點內容
文件夾目錄鏈接 發布:2025-01-31 08:24:22 瀏覽:948
ftpdos命令上傳 發布:2025-01-31 08:14:44 瀏覽:105
intenumjava 發布:2025-01-31 08:14:37 瀏覽:802
android3x 發布:2025-01-31 08:13:03 瀏覽:600
如何購買安卓版live2d 發布:2025-01-31 08:13:01 瀏覽:279
python交互輸入 發布:2025-01-31 08:12:53 瀏覽:427
requestdatapython 發布:2025-01-31 08:02:01 瀏覽:44
javades加密工具 發布:2025-01-31 07:54:04 瀏覽:244
電話如何配置ip 發布:2025-01-31 07:48:48 瀏覽:300
2021賓士e300l哪個配置性價比高 發布:2025-01-31 07:47:14 瀏覽:656