php文件上傳實現,php中實現文件上傳的函數

本文目錄一覽:

怎樣用PHP實現文件上傳

創建一個文件上傳表單

允許用戶從表單上傳文件是非常有用的。

請看下面這個供上傳文件的 HTML 表單:

html

body

form action=”upload_file.php” method=”post”

enctype=”multipart/form-data”

label for=”file”Filename:/label

input type=”file” name=”file” id=”file” /

br /

input type=”submit” name=”submit” value=”Submit” /

/form

/body

/html

請留意如下有關此表單的信息:

form 標籤的 enctype 屬性規定了在提交表單時要使用哪種內容類型。在表單需要二進位數據時,比如文件內容,請使用 “multipart/form-data”。

input 標籤的 type=”file” 屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。

注釋:允許用戶上傳文件是一個巨大的安全風險。請僅僅允許可信的用戶執行文件上傳操作。

創建上傳腳本

“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) . ” Kbbr /”;

echo “Stored in: ” . $_FILES[“file”][“tmp_name”];

}

?

通過使用 PHP 的全局數組 $_FILES,你可以從客戶計算機向遠程伺服器上傳文件。

第一個參數是表單的 input name,第二個下標可以是 “name”, “type”, “size”, “tmp_name” 或 “error”。就像這樣:

$_FILES[“file”][“name”] – 被上傳文件的名稱

$_FILES[“file”][“type”] – 被上傳文件的類型

$_FILES[“file”][“size”] – 被上傳文件的大小,以位元組計

$_FILES[“file”][“tmp_name”] – 存儲在伺服器的文件的臨時副本的名稱

$_FILES[“file”][“error”] – 由文件上傳導致的錯誤代碼

這是一種非常簡單文件上傳方式。基於安全方面的考慮,您應當增加有關什麼用戶有權上傳文件的限制。

上傳限制

在這個腳本中,我們增加了對文件上傳的限制。用戶只能上傳 .gif 或 .jpeg 文件,文件大小必須小於 20 kb:

?php

if ((($_FILES[“file”][“type”] == “image/gif”)

|| ($_FILES[“file”][“type”] == “image/jpeg”)

|| ($_FILES[“file”][“type”] == “image/pjpeg”))

($_FILES[“file”][“size”] 20000))

{

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) . ” Kbbr /”;

echo “Stored in: ” . $_FILES[“file”][“tmp_name”];

}

}

else

{

echo “Invalid file”;

}

?

注釋:對於 IE,識別 jpg 文件的類型必須是 pjpeg,對於 FireFox,必須是 jpeg。

保存被上傳的文件

上面的例子在伺服器的 PHP 臨時文件夾創建了一個被上傳文件的臨時副本。

這個臨時的複製文件會在腳本結束時消失。要保存被上傳的文件,我們需要把它拷貝到另外的位置:

?php

if ((($_FILES[“file”][“type”] == “image/gif”)

|| ($_FILES[“file”][“type”] == “image/jpeg”)

|| ($_FILES[“file”][“type”] == “image/pjpeg”))

($_FILES[“file”][“size”] 20000))

{

if ($_FILES[“file”][“error”] 0)

{

echo “Return Code: ” . $_FILES[“file”][“error”] . “br /”;

}

else

{

echo “Upload: ” . $_FILES[“file”][“name”] . “br /”;

echo “Type: ” . $_FILES[“file”][“type”] . “br /”;

echo “Size: ” . ($_FILES[“file”][“size”] / 1024) . ” Kbbr /”;

echo “Temp file: ” . $_FILES[“file”][“tmp_name”] . “br /”;

if (file_exists(“upload/” . $_FILES[“file”][“name”]))

{

echo $_FILES[“file”][“name”] . ” already exists. “;

}

else

{

move_uploaded_file($_FILES[“file”][“tmp_name”],

“upload/” . $_FILES[“file”][“name”]);

echo “Stored in: ” . “upload/” . $_FILES[“file”][“name”];

}

}

}

else

{

echo “Invalid file”;

}

?

上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。

注釋:這個例子把文件保存到了名為 “upload” 的新文件夾。

php 批量大文件上傳下載如何實現?

1.首先還是查看環境是否支持超大容量上傳的支持,500M以上的文件通常為視頻文件;

2.即然他要上傳500M以上的文件,估計伺服器性能必定非同凡想,所以暫可不考慮伺服器硬體配置問題,但一定要考慮到網速問題,建議1000M以上出入速率,如少於這個數,你可以放棄這個方案了;

3.前面硬體都過關了,但程序也要加強了,一下上傳500M是哪種語言都不能實現的,唯一解決方案,文件切割,如迅雷下載原理一樣(採用續點上傳),分成若干小塊,然後全部上傳完畢以後,再進行文件合成。

4.至於PHP的文件切割,切割後上傳,以及文件合併,此類代碼網上有許多,樓主可查詢並選擇適合你的代碼,實現你的功能!

php中如何實現ftp上傳基礎代碼

p工具我們都用過是用來上傳文件的,那麼在php中如何用代碼實現呢,下面簡單介紹一個最基礎最簡單的列子,首先根據我們使用ftp工具來說,實現文件上傳需要打開ftp工具-輸入ftp地址,埠號,賬號,密碼登陸ftp-從本地選擇相應文件上傳到ftp相應目錄,php中要實現這麼一個簡單的功能無非也是這樣。

第一步:打開ftp

$ip=”101.101.101.101″;

$name=”name”;

$pwd=”mima”;

$con=ftp_connect($ip,”21″)

or(“連接失敗”);

第二步:登陸ftp

ftp_login($con,$name,$pwd);

第三步:上傳本地test.php文件到ftp

image目錄下

ftp_put($con,”image/test.php”,”test.php”,FTP_ASCII);

此時在ftp上的image目錄下可以看到test.php文件了,當然這裡上傳文件,可以擴展下寫個上傳表單,將表單附件上傳ftp這樣就更方便,這裡只作為一個文件最基礎上傳ftp功能。

php如何實現文件上傳

所謂上傳就是把文件從你電腦本地複製到你的項目指定文件夾下。

但這有個中間過程,就是複製到系統指定的臨時文件夾生成臨時文件。

然後將臨時文件複製到你指定的文件夾下。

剩下的就是各種驗證了。

給你個圖片上傳方法

//上傳一張圖片

$pic = $_FILES[‘pic’];

function upload($pic){

$tmp_name = $pic[‘tmp_name’];

$name = $pic[‘name’];

$type = $pic[‘type’];

$size = $pic[‘size’];

if(!is_uploaded_file($tmp_name)) exit(‘不是上傳文件’);

//判斷是否是圖片

$mine = array(‘image/png’,’image/jpg’,’image/gif’,’image/jpeg’);

if(!in_array($type,$mine)) exit(‘圖片格式不正確’);

//判斷是否有錯誤碼

$error = $pic[‘error’];

switch ($error) {

case 1:

exit(“超出上傳文件的最大限制”);

case 2:

exit(“超出了指定的文件大小”);

case 3:

exit(“只有部分文件被上傳”);

case 4:

exit(“文件沒有被上傳”);

case 6:

exit(“找不到臨時文件夾”);

case 7:

exit(“文件寫入失敗”);

}

echo “================br/”;

echo “上傳文件名稱是:”.$name.”br/”;

echo “上傳文件類型是:”.$type.”br/”;

echo “上傳文件大小是:”.$size.”br/”;

echo “上傳後系統返回的值是:”.$error.”br/”;

echo “上傳文件的臨時存放路徑是:”.$tmp_name.”br/”;

echo”開始移動臨時文件”.’br’;

$des_name = ‘up/’.mt_rand().time().’.’.basename($type);

$res = move_uploaded_file($tmp_name, $des_name);

if($res){

echo “================br/”;

echo “上傳圖片成功”.’br’;

}

}

原創文章,作者:TEOT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140428.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TEOT的頭像TEOT
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • 分段函數Python

    本文將從以下幾個方面詳細闡述Python中的分段函數,包括函數基本定義、調用示例、圖像繪製、函數優化和應用實例。 一、函數基本定義 分段函數又稱為條件函數,指一條直線段或曲線段,由…

    編程 2025-04-29

發表回復

登錄後才能評論