本文目錄一覽:
- 1、怎麼通過HTML+PHP上傳文件到伺服器?
- 2、html上傳文件代碼
- 3、求html多文件上傳代碼 可參考以下代碼
- 4、寫一個html+php代碼,實現客戶基本信息提交以及支持客戶上傳圖片,並且我可以在自己的獨立伺服器中查知
- 5、html網頁上傳文件的完整代碼
- 6、求實現php文件上傳代碼
怎麼通過HTML+PHP上傳文件到伺服器?
HTML代碼:
body
form action=”” method=”post” enctype=”multipart/form-data” name=”upload_form”
label選擇圖片文件/label
input name=”imgfile” type=”file” accept=”image/gif, image/jpeg”/
input name=”upload” type=”submit” value=”上傳” /
/form
/body
PHP代碼:
if (isset($_FILES[‘imgfile’])
is_uploaded_file($_FILES[‘imgfile’][‘tmp_name’]))
{
$imgFile = $_FILES[‘imgfile’];
$upErr = $imgFile[‘error’];
if ($upErr == 0)
{
$imgType = $imgFile[‘type’]; //文件類型。
/* 判斷文件類型,這個例子里僅支持jpg和gif類型的圖片文件。*/
if ($imgType == ‘image/jpeg’
|| $imgType == ‘image/gif’)
{
$imgFileName = $imgFile[‘name’];
$imgSize = $imgFile[‘size’];
$imgTmpFile = $imgFile[‘tmp_name’];
/*
將文件從臨時文件夾移到上傳文件夾中。
注意:upfile這個文件夾必須先創建好,不然會報錯。
*/
move_uploaded_file($imgTmpFile, ‘upfile/’.$imgFileName);
/*顯示上傳後的文件的信息。*/
$strPrompt = sprintf(“文件%s上傳成功br”
. “文件大小: %s位元組br”
. “img src=’upfile/%s'”
, $imgFileName, $imgSize, $imgFileName
);
echo $strPrompt;
}
else
{
echo “請選擇jpg或gif文件,不支持其它類型的文件。”;
}
}
else
{
echo “文件上傳失敗。br”;
switch ($upErr)
{
case 1:
echo “超過了php.ini中設置的上傳文件大小。”;
break;
case 2:
echo “超過了MAX_FILE_SIZE選項指定的文件大小。”;
break;
case 3:
echo “文件只有部分被上傳。”;
break;
case 4:
echo “文件未被上傳。”;
break;
case 5:
echo “上傳文件大小為0”;
break;
}
}
}
else
{
}
html上傳文件代碼
在HTML標準中,XMLHttpRequest對象被重新定義,被稱為「XMLHttpRequest Level 2」,其中包含了以下5個新特性:
1、支持上傳、下載位元組流,比如文件、blob以及表單數據。
2、增加了上傳、下載中的進度事件。
3、跨域請求的支持。
4、允許發送匿名請求(即不發送HTTP的Referer部分)。
5、允許設置請求的超時。
在這篇教程中,我們主要關注第一和第二項特性,尤其是第二項——它能夠提供我們想要的上傳進度。和之前的方案不同,這個方案並不要求伺服器作出特殊的設置,因此大家邊看教程就可以邊動手試試了。
上面圖示的就是我們能夠實現的內容:
1、顯示上傳的文件信息,比如文件名、類型、尺寸。
2、一個能夠顯示真實進度的進度條。
3、上傳的速度。
4、剩餘時間的估算。
5、已上傳的數據量。
6、上傳結束後伺服器返回的響應。
另外,憑藉XMLHttpRequest,我們的上傳過程整個都是非同步的,因此用戶在上傳文件的時候,依然可以操作網頁當中的其它元素,並不需要專門等待上傳的完成。而在上傳結束後,我們能夠獲取伺服器發回的響應,因此整個上傳過程都顯得相當順理成章。
求html多文件上傳代碼 可參考以下代碼
從技術角度看,你只需要在input控制項中標註multiple標籤就夠了
以下就是演示代碼:
!DOCTYPE html
html
head
title
Solution 4-5: Sending multiple files
/title
/head
body
form id=”myForm”
fieldset
legendSolution 4-5: Sending multiple files/legend
labelUpload one or more files:/label
input type=”file” name=”multipleFileUpload” multiple /
/fieldset
/form
/body
/html
重要心得
用戶選擇的多個文件傳遞到服務端後將會被服務端的編程語言去處理的。有些編程語言,比如PHP需要你為name標籤的字元添加方括弧來支持傳輸多個文件。
1input name=”filesUploaded[]” type=”file” multiple /
這樣,PHP將構造一個數據類型的數組,來容納一個個上傳到伺服器的文件。相反如果你在HTML標籤中不適用方括弧的話,PHP將僅僅只接受到最後一個文件。
寫一個html+php代碼,實現客戶基本信息提交以及支持客戶上傳圖片,並且我可以在自己的獨立伺服器中查知
寫入資料庫亂碼?很簡單的
1在php頁面的head之間加入meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
2在php代碼鏈接資料庫之後加一行
mysql_select_db(‘資料庫名’); //選擇資料庫之後
mysql_query(“SET NAMES UTF8”);
目的是保持頁面和資料庫編碼一致
html網頁上傳文件的完整代碼
html前端代碼:
html
body
form action=”upload-file.php” method=”post”
enctype=”multipart/form-data”
label for=”file”文件名:/label
input type=”file” name=”file” id=”file” /
br/
input type=”submit” name=”submit” value=”提交” /
/form
/body
/html
如果是ubuntu上部署apache2,你應該是php開發者吧,action=”upload-file.php
” 中的upload-file.php改為你自己的後端php接收文件的邏輯代碼即可!
這裡提供upload-file.php後端接收文件的代碼:
?php
if ($_FILES[“file”][“error”] 0)
{
echo “錯誤: ” . $_FILES[“file”][“error”] . “br /”;
}
else
{
echo “文件名: ” . $_FILES[“file”][“name”] . “br /”;
echo “類型: ” . $_FILES[“file”][“type”] . “br /”;
echo “大小: ” . ($_FILES[“file”][“size”] / 1024) . ” Kbbr /”;
}
if (file_exists(“upload/” . $_FILES[“file”][“name”]))
{
echo $_FILES[“file”][“name”] . ” 文件已經存在. “;
}
else
{
move_uploaded_file($_FILES[“file”][“tmp_name”],
“upload/” . $_FILES[“file”][“name”]);
echo “文件已經被存儲到: ” . “upload/” . $_FILES[“file”][“name”];
}
?
代碼很簡單,我相信你應該能看懂,這裡的 文件夾 upload/ 需要你自己手動創建,請確保文件路徑正取!
我也是web開發者,有問題可繼續追問我!或是加我工作室QQ(540144097),在群里向我提問!有問必答,望採納……
求實現php文件上傳代碼
PHP上傳文件非常簡單,你需要一個上傳的HTML文件(FORM),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。
真正實現完整功能的上傳和管理需要使用資料庫,我的網站俱樂部裡面上傳文件一開放很快就傳了幾萬個文件。
最簡單的方法不用資料庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然後提供一個上傳的FORM,最後檢測是否提交了FORM數據,是就保存文件到指定位置。
PHP手冊第39章有關於處理這些問題的說明,我複製粘貼如下:
上一頁 V. 特點 下一頁
——————————————————————————–
第 39 章 文件上傳處理
目錄
POST 方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對 PUT 方法的支持
POST 方法上傳
本特性可以使用戶上傳文本和二進位文件。用 PHP 的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。
PHP 能夠接受任何來自符合 RFC-1867 標準的瀏覽器(包括 Netscape Navigator 3 及更高版本,打了補丁的 Microsoft Internet Explorer 3 或者更高版本)上傳的文件。
相關的設置: 請參閱 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 設置選項。
請注意 PHP 也支持 PUT 方法的文件上傳,Netscape Composer 和 W3C 的 Amaya 客戶端使用這種方法。請參閱對 PUT 方法的支持以獲取更多信息。
例 39.1. 文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:
!– The data encoding type, enctype, MUST be specified as below —
form enctype=”multipart/form-data” action=”__URL__” method=”POST”
!– MAX_FILE_SIZE must precede the file input field —
input type=”hidden” name=”MAX_FILE_SIZE” value=”30000″ /
!– Name of input element determines name in $_FILES array —
Send this file: input name=”userfile” type=”file” /
input type=”submit” value=”Send File” /
/form
以上範例中的 __URL__ 應該被換掉,指向一個真實的 PHP 文件。
MAX_FILE_SIZE 隱藏欄位(單位為位元組)必須放在文件輸入欄位之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP 也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP 設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之後才發現文件過大上傳失敗的麻煩。
注意: 要確保文件上傳表單的屬性是 enctype=”multipart/form-data”,否則文件上傳不了。
全局變數 $_FILES 自 PHP 4.1.0 起存在(在更早的版本中用 $HTTP_POST_FILES 替代)。此數組包含有所有上傳的文件信息。
以上範例中 $_FILES 數組的內容如下所示。我們假設文件上傳欄位的名稱如上例所示,為 userfile。名稱可隨意命名。
$_FILES[‘userfile’][‘name’]
客戶端機器文件的原名稱。
$_FILES[‘userfile’][‘type’]
文件的 MIME 類型,如果瀏覽器提供此信息的話。一個例子是「image/gif」。不過此 MIME 類型在 PHP 端並不檢查,因此不要想當然認為有這個值。
$_FILES[‘userfile’][‘size’]
已上傳文件的大小,單位為位元組。
$_FILES[‘userfile’][‘tmp_name’]
文件被上傳後在服務端儲存的臨時文件名。
$_FILES[‘userfile’][‘error’]
和該文件上傳相關的錯誤代碼。此項目是在 PHP 4.2.0 版本中增加的。
文件被上傳後,默認地會被儲存到服務端的默認臨時目錄中,除非 php.ini 中的 upload_tmp_dir 設置為其它的路徑。服務端的默認臨時目錄可以通過更改 PHP 運行環境的環境變數 TMPDIR 來重新設置,但是在 PHP 腳本內部通過運行 putenv() 函數來設置是不起作用的。該環境變數也可以用來確認其它的操作也是在上傳的文件上進行的。
例 39.2. 使文件上傳生效
請查閱函數 is_uploaded_file() 和 move_uploaded_file() 以獲取進一步的信息。以下範例處理由表單提供的文件上傳。
?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = ‘/var/www/uploads/’;
$uploadfile = $uploaddir . basename($_FILES[‘userfile’][‘name’]);
echo ‘pre’;
if (move_uploaded_file($_FILES[‘userfile’][‘tmp_name’], $uploadfile)) {
echo “File is valid, and was successfully uploaded.\n”;
} else {
echo “Possible file upload attack!\n”;
}
echo ‘Here is some more debugging info:’;
print_r($_FILES);
print “/pre”;
?
接受上傳文件的 PHP 腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用 $_FILES[‘userfile’][‘size’] 變數來排除過大或過小的文件,也可以通過 $_FILES[‘userfile’][‘type’] 變數來排除文件類型和某種標準不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在 PHP 端並不檢查。自 PHP 4.2.0 起,還可以通過 $_FILES[‘userfile’][‘error’] 變數來根據不同的錯誤代碼來計划下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則 PHP 變數 $_FILES[‘userfile’][‘size’] 的值將為 0,$_FILES[‘userfile’][‘tmp_name’] 將為空。
如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。
例 39.3. 上傳一組文件
PHP 的 HTML 數組特性甚至支持文件類型。
form action=”” method=”post” enctype=”multipart/form-data”
pPictures:
input type=”file” name=”pictures[]” /
input type=”file” name=”pictures[]” /
input type=”file” name=”pictures[]” /
input type=”submit” value=”Send” /
/p
/form
?php
foreach ($_FILES[“pictures”][“error”] as $key = $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES[“pictures”][“tmp_name”][$key];
$name = $_FILES[“pictures”][“name”][$key];
move_uploaded_file($tmp_name, “data/$name”);
}
}
?
——————————————————————————–
上一頁 上一級 下一頁
38. 處理 XForms 起始頁 錯誤信息說明
原創文章,作者:PSPV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134150.html