phppost文件上傳
❶ php怎麼將接收到的post數據發送到另一個php文件中
可以用 Curl、socket、file_get_contents 等方式來發送POST數據
❷ PHP中$_POST和$_GET
$_GET
就是地址傳值,用 '?' 開始傳值,多個值間用 '&' 號分隔,多用於簡單的傳值,比如說看新聞需要新聞id一般就會用地址傳值, $_GET的好處是傳值可見,也就是只要一個地址就ok了,缺點是不安全,而且有限制位元組數,優點是容易分享
$_POST
這種提交方式不可見,也就是傳的值不會出現在URL地址中,一般用於注冊和登錄,這種方式因為要安全要高一點,所以會用POST方式,而且POST方式沒有限制位元組數,所以提交文章也會使用post
POST傳值不可見,GET傳值可見,在一些簡單的情況應該使用GET,比如說看新聞,如果用post方式的話,網址中沒有傳值,就識別不了是哪編新聞,這就不容易分享了,這種情況就會使用get比較多,
上面說的只是一個例子而已,一般情況下,沒特別需求,登錄注冊,安全性要求高的,...填寫文章,需要提交大數據的,表單中含有上傳文件的,都會使用post,
其他情況沒什麼特別的話都可以使用get
❸ 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的默認方法。
❹ php POST上傳和ftp上傳哪個好 為什麼
樓上已經說的很明白了。就是這樣的。不過要具體用那個,要看你的具體應用了。http上傳往往也受到了伺服器的限制,超時設置等限制,其實也是有局限性的。但使用很廣,系統開通80埠可以提供多種服務。 ftp在效率都好過http,但是,在web上使用,還是有點麻煩,比如ftp認證問題等。
❺ 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上傳文件到伺服器
1、通過PHP,可以把文件上傳到伺服器。創建一個文件上傳表單,下面這個供上傳文件的 HTML 表單:
<html>
<body>
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
</body>
</html>
2、創建上傳腳本,命名為"upload_file.php" 文件含有供上傳文件的代碼:
<?php
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."<br/>";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."<br/>";
echo"Type:".$_FILES["file"]["type"]."<br/>";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb<br/>";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
註:通過使用 PHP 的全局數組 「$_FILES」,就可以實現從客戶計算機向遠程伺服器上傳文件。
❼ 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網頁上傳文件代碼.
自定義文件上傳函數
:
<?php
/**
* 文件上傳
*/
/**
* 文件上傳函數
* @param $name string 表單上傳框的name值
* @param $file_arr array 上傳文件的類型限制
* @param $filesize int 上傳文件限制其大小
* @param $path string 文件的保存路徑
* @return string 成功返回 "上傳成功及文件名"
*/
function uploads($name,$file_arr=array('jpg','png','gif','JPG','GIF','PNG'),$filesize=3145728,$path='uploads'){
//1、檢測文件的錯誤信息,如果是0 就允許上傳(保存)
$err=$_FILES[$name]['error'];
if($err>0){
if($err==1){
return '上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。';
}elseif($err==2){
return '上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。 ';
}elseif($err==3){
return '文件只有部分被上傳。';
}elseif($err==4){
return'沒有文件上傳';
}elseif($err>=5){
return '其他錯誤';
}
}
//2、檢測文件的類型,是否是我們需要的(png、gif、jpg)
$pre=pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
if(!in_array($pre,$file_arr)){
return '上傳的文件類型不符';
}
//3、檢測文件大小
if($_FILES[$name]['size']>$filesize){
return '上傳的文件太大';
}
//4、保存文件
$file_name=date('YmdHis',time()).mt_rand(1000,9999).'.'.$pre;
if(is_uploaded_file($_FILES[$name]['tmp_name'])){
move_uploaded_file($_FILES[$name]['tmp_name'], $path."/".$file_name);
return '上傳成功|'.$file_name;
}else{
return "文件上傳失敗!";
}
}
?>
❾ 在php curl庫中利用post請求中怎麼將一個大文件分成數據塊上傳
將文件拆分為二進制數據流讓後切割後進行數據傳入後台再組合後將二進制數據流轉換為文件;這只是個理論具體怎麼操作還要好好研究下。