當前位置:首頁 » 文件管理 » php上傳文件代碼

php上傳文件代碼

發布時間: 2022-05-28 20:32:02

『壹』 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如何上傳文件

$f_type=strtolower("swf,rar,jpg,zip,7z,iso,gif,exe,rmvb");//設置可上傳的文件類型

if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 20000 * 1024 * 1024) )
{
$error = 'Please upload only files smaller than 2Mb!';
}
$f_name=$_FILES['photoupload']['name'];
$tmp_type=substr(strrchr($f_name,"."),1);//獲取文件擴展名
$tmp_type=strtolower($tmp_type);
if(!stristr($f_type,$tmp_type)){
$error="對不起,不能上傳格式為:".$tmp_type."的文件:".$f_name;

}
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $uploadfile)){
$result['result'] = 'success';
$result['size'] =$f_name."文件上傳成功";
}
else{
$result['result'] = 'failed';
$result['error'] =$f_name."上傳失敗";
}

『叄』 php實現:一次選擇多個文件上傳

參考代碼如下:
<?php
$max_files=5; //最多上傳文件的個數,與 up.htm 中的 input file 控制項的個數相同
$up_ok_files=0; //成功上傳的文件個數
$up_folder="ups"; //保存上傳文件的目標文件夾
if(isset($_FILES['myfile'])){
//由於 $_FILES['myfile'] 是個數組,所以需要使用循環遍歷
for($i=0;$i<$max_files;$i++){
//如果未出錯
if($_FILES['myfile']['error'][$i]==0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){
//成功上傳後,計數器增 1
$up_ok_files +=1;
}
else{
echo "<h4 style='color:red;'>在伺服器中保存失敗</h4>";
}
}
}
echo "<h4>成功上傳 ".$up_ok_files. " 個文件</h4>";
}
?>
注意:
如果對 $_FILES['myfile'] 這個數組的結構不清楚,可以在循環之前加入這句代碼將其顯示出來:
print_r($_FILES['myfile']);

『肆』 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上傳任意文件的代碼

PHP 文件上傳 是通過 PHP,可以把文件上傳到伺服器。

1首先創建一個文件上傳表單

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

請看下面這個供上傳文件的 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" 屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。

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

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 "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"] - 由文件上傳導致的錯誤代碼

這是一種非常簡單文件上傳方式。不需要考慮文件的上傳格式。

『陸』 我想在我的網站做個上傳文件的PHP代碼

你有沒有PHP手冊,上面有例子,你先粘貼上面的例子進行使用,遇到什麼問題請粘貼代碼和錯誤的拷屏。


另外,你是用的什麼系統(DOS、UNIX?),虛擬主機一般對PHP有許多限制。


文件上傳的表單:

<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>


接受上傳保存文件的PHP代碼:

<?php
$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);

echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded. ";
}else{
echo"Possiblefileuploadattack! ";
}

echo'Hereissomemoredebugginginfo:';
print_r($_FILES);
print"</pre>";
?>

『柒』 經典怎樣通過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) . " Kb<br />";
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) . " Kb<br />";
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) . " Kb<br />";
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";
}
?>

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

『捌』 php 生成自動創建文件夾並上傳文件的示例代碼

復制代碼
代碼如下:
<?
session_start();
if($_SESSION['Company']=='')
{
//exit();
}
?><?php
//上傳圖片
$uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','application/x-shockwave-flash','image/x-png');
$max_file_size=5000000;
//上傳文件大小限制,
單位BYTE

$addtime=date("Ymd",time());

$testdir="./".$addtime."/";

if(file_exists($testdir)):

else:

mkdir($testdir,0777);

endif;
$destination_folder=$addtime."/";
//上傳文件路徑
$imgpreview=1;
//是否生成預覽圖(1為生成,其他為不生成);
$imgpreviewsize=1/2;
//縮略圖比例
if
($_SERVER['REQUEST_METHOD']
==
'POST')
{
if
(!is_uploaded_file($_FILES["Pic"][tmp_name]))
//是否存在文件
{
echo
"<font
color='red'>文件不存在!</font>";
exit;
}
$file
=
$_FILES["Pic"];
if($max_file_size
<
$file["size"])
//檢查文件大小
{
echo
"<font
color='red'>文件太大!</font>";
exit;

}
if(!in_array($file["type"],
$uptypes))
//檢查文件類型
{
echo
"<font
color='red'>只能上傳圖像文件或Flash!</font>";
exit;
}
if(!file_exists($destination_folder))
mkdir($destination_folder);
$filename=$file["tmp_name"];
$image_size
=
getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo[extension];
$PicName
=
time().".".$ftype;
$destination
=
$destination_folder.$PicName;
if
(file_exists($destination)
&&
$overwrite
!=
true)
{

echo
"<font
color='red'>同名文件已經存在了!</a>";

exit;
}
if(!move_uploaded_file
($filename,
$destination))
{

echo
"<font
color='red'>上傳文件出錯!</a>";

exit;
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
}
?><?
$path
=
dirname(__FILE__);
require_once($path.'/../../Mole/Factory.php');
$Factory
=
new
Factory();
$BLL_Trade
=
$Factory->FactoryTrade();
try
{
$Infor
=
new
Infor();
$Infor->Title
=
$_POST['Title'];
$Infor->Deposit
=
$_POST['Deposit'];
$Infor->Hire
=
$_POST['Hire'];
$Infor->Location
=
$_POST['Location'];
$Infor->Pic
=
$destination;
$Infor->Intro
=
$_POST['Intro'];
if($_SESSION['MemberId']
==''){
$Infor->Member->ID='';
}else
{
$Infor->Member->ID
=
$_SESSION['MemberId'];}
if($_POST['GoodsBarCode']
==''){
$Infor->Goods->BarCode
=
0;
}else
{
$Infor->Goods->BarCode
=
$_POST['GoodsBarCode'];}
$Infor->Class->ID
=
0;//日後修改
$Infor->IssueTime
=
time();
$Infor->ViewNum
=
0;
$Infor->State
=
1;//現在未定,日後修改
$Infor->Top
=
0;
$Infor->Recommend
=
0;
$Infor->BookMember->ID
=
0;
$Infor->BookTime
=
0;
$Infor->BookRemark
=
0;
$BLL_Trade->CreateInfor($Infor);
echo
'發布信息成功!';
}
catch
(Exception
$Err){
echo
$Err->getMessage();
}
?>

『玖』 我的php代碼關於上傳文件不太會

$filename=$_FILES['upfile']['tmp_name'];//要用tmp_name

$_FILES超全局變數的元素內容有:
$_FILES['file']['name']客戶端文件的原名稱。
$_FILES['file']['type']文件的MIME類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['file']['size']已上傳文件的大小,單位為位元組。
$_FILES['file']['tmp_name']文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。
可以在php.ini的upload_tmp_dir指定,但用putenv()函數設置是不起作用的。
$_FILES['file']['error']該文件上傳相關的錯誤代碼
值:0;沒有錯誤發生,文件上傳成功。
值:1;上傳的文件超過了php.ini中upload_max_filesize選項限制的值。
值:2;上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值。
值:3;文件只有部分被上傳。
值:4;沒有文件被上傳。
值:5;上傳文件大小為0.

『拾』 求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 "文件上傳失敗!";
}

}
?>

熱點內容
mysql怎麼用資料庫 發布:2025-01-23 07:21:02 瀏覽:997
怎麼訪問暗網 發布:2025-01-23 07:02:04 瀏覽:665
無線配置代理選什麼 發布:2025-01-23 06:52:54 瀏覽:824
c程序匯編程序 發布:2025-01-23 06:49:42 瀏覽:840
cmd命令與linux命令 發布:2025-01-23 06:40:26 瀏覽:806
linux用戶目錄許可權 發布:2025-01-23 06:37:49 瀏覽:233
學計算機避免編程 發布:2025-01-23 06:29:09 瀏覽:661
易語言機器人源碼 發布:2025-01-23 06:24:03 瀏覽:320
匯編語言的編譯可以叫解釋嗎 發布:2025-01-23 06:23:22 瀏覽:35
tomcat編譯後的文件 發布:2025-01-23 06:05:46 瀏覽:254