導航:首頁 > 編程語言 > php文件域上傳

php文件域上傳

發布時間:2023-02-13 12:49:07

㈠ 北大青鳥java培訓:用php控制FTP文件上傳

利用PHP,你總是可以有多種方式來完成某個特定的任務。
我們就拿文件上傳舉個例子。
當然了,你可以按照傳統的方式來使用HTTP文件上傳,把文件直接傳輸到Web伺服器磁碟上。
湖北電腦培訓http://www.kmbdqn.cn/認為你還可以用更加奇異的方式上傳,用FTP協議兩步就完成上傳:從你的本地硬碟到Web伺服器,然後再到FTP伺服器。
PHP在本機同時支持FTP和HTTP上傳,所以你可以根據自己應用程序的設計需要進行最佳的選擇。
使用PHP的FTP函數進行文件傳輸幾乎與使用傳統的FTP客戶端相同——你會看到連函數的名字都和標準的FTP命令類似。
關於HTTP文件上傳的文章已經多得滿天飛了,這就是為什麼本文有必要把注意力放在基於FTP的文件上傳上了(但是在後面給出的例子中,兩種方式你都會看到)。
要注意的是,本教程假設你已經安裝好了PHP/Apache,而且HTTP文件上傳和FTP的函數都已經激活了。
第一步:確信你擁有連接/上傳到FTP伺服器的許可權PHP的FTP函數需要客戶端-伺服器連接,所以你需要在進行文件上傳之前登錄到目標伺服器上。
你的第一項任務是確信你已經擁有了完成這項任務的信任書。
這一步可能看起來是理所當然的,但是你會驚奇地發現有多少開發人員忘了這么做,結果後來浪費大量的時間來解決因此而出現的問題。

㈡ PHP文件上傳代碼用法

php文件上傳代碼編寫過程

先判斷是否上傳文件

如果有再來判斷上傳中是否出錯

如果出錯 則提示出錯信息

如查沒出錯 再判斷文件類型

如果類型符合條件 再判斷指定目錄中有沒有存在該文件

如果沒有就把該文件移至指定目錄

在php中上傳文件必須知道的幾個東西

$_FILES[ myfile ][ name ] 是指被上傳文件的名稱

$_FILES[ myfile ][ type ] 是指被上傳文件的類型

$_FILES[ myfile ][ size ] 是指被上傳文件的大小 單位為位元組(B)

$_FILES[ myfile ][ tmp_name ] 是指被上傳文件存在伺服器中的臨時副本文件名稱 文件被移動到指定目錄後臨文件將被自動消毀

$_FILES[ myfile ]["error"] 是指由文件上傳中有可能出現的錯誤的狀態碼 關於各狀態含義後在會說明

先來看一下HTML部分

代碼如下 復制代碼

?<form action="upload php" method="post" enctype="multipart/form data"> 上傳 <input type=file name=myfile /> <input type=submit name=submit value="上傳" /> </form>

說明

form標答的action="upload php"是指點擊這個form中的submit的時候 這個上傳命令會被發送到這個叫 upload php的頁面去處理 method="post"是指以post方式去送 enctype="multipart/form data"屬性規定了在提交這個表單時要使用哪種內容類型 在表單需要二進制數據時 比如文件內容 請使用"multipart/form data" 如果要上傳文件 這個屬性是必要的 input中的type="file"時 規定了應該把輸入作為文件來處理 並且在input後面會有一個瀏覽的按鈕

我們再來看一個PHP處理頁面 upload php

代碼如下 復制代碼

<?php if($_FILES[ myfile ][ name ] != ) { if($_FILES[ myfile ][ error ] > ) { echo "錯誤狀態 " $_FILES[ myfile ][ error ]; } else { move_uploaded_file($_FILES[ myfile ][ tmp_name ] "uploads/" $FILES[ myfile ][ name ]); echo "<script>alert(上傳成功!);</script>"; } } else{ echo "<script>alert(請上傳文件!);</script>"; } ?>

上面超級簡單 我們現在來升級一下

upload php

代碼如下 復制代碼

<!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN"> <> <head> <title>ddd</title> <meta equiv="content type" content="text/; charset=UTF "> </head> <body> <! 文件上傳要注意: 要有enctyp method="post" > <form enctype="multipart/form data" action="uploadProcess php" method="post" > <table> <tr><td>請填寫用戶名</td><td><input type=text name=username></td></tr> <tr><td>請簡單介紹文件</td><td><textarea rows=" " cols=" " name=fileintro class="page_speeder_734321457"></textarea></td></tr> <tr><td>請上傳你的文件</td><td><input type=file name=myfile></td></tr> <tr><td colspan=" "><input type=submit value="上傳"><td></tr> </table> </form> </body> </>

uploadProcess php

代碼如下 復制代碼

<?php

//接收 $username=$_POST[ username ]; $fileintro=$_POST[ fileintro ]; //echo $username $fileintro; //獲取文件信息 /* echo "<pre>"; print_r($_FILES); echo "</pre>"; */ //獲取文件的大小 $file_size=$_FILES[ myfile ][ size ]; if($file_size> * * ){ echo "<script type= text/javascript >window alert( 文件不能大於 M )</script>"; exit(); }

//獲取文件類型 $file_type=$_FILES[ myfile ][ type ]; if($file_type!="image/jpeg" && $file_type!="image/pjpeg"){ echo "文件類型只能是 jpg 格式"; exit(); }

//判斷上傳是否OK if(is_uploaded_file($_FILES[ myfile ][ tmp_name ])){ //得到上傳的文件 轉存到你希望的目錄 $upload_file=$_FILES[ myfile ][ tmp_name ]; //防止圖片覆蓋問題 為每個用戶建立一個文件夾 $user_path=$_SERVER[ DOCUMENT_ROOT ] "/file/up/" $username; if(!file_exists($user_path)){ mkdir ($user_path); }

//$move_to_file=$user_path "/" $_FILES[ myfile ][ name ]; //防止用戶上傳用戶名相同的問題 $file_true_name=$_FILES[ myfile ][ name ]; $move_to_file=$user_path "/" time() rand( ) substr($file_true_name strripos($file_true_name " "));

//echo $upload_file $move_to_file; //中文要轉碼 if(move_uploaded_file($upload_file iconv("utf " "gb " "$move_to_file"))){ echo $_FILES[ myfile ][ name ] "上傳成功"; }else{ echo "上傳失敗"; } }else{ echo "上傳失敗"; }

?>

注意:

我舉個例子大家就知道 比如一個圖片文件 pic jpg 我們用 strrchr處理 strrchr(pic jpg ) 它將返回 jpg 明白了嗎?該函數返回指定字元在該字元串最後出現的位置後的字元 配合 substr() 我們就可以取到jpg 這樣我們就得到了文件的後綴名 來判斷上傳文件是否符合指定格式 本程序把指定的格式放在一個數組中 實際使用時可根據需要添加

lishixin/Article/program/PHP/201311/20924

㈢ 關於php實現文件上傳

php的文件上傳機制是把用戶上傳的文件保存在php.ini的upload_tmp_dir定義的臨時目錄(默認是系統的臨時目錄,如:/tmp)里的一個類似phpxXuoXG的隨機臨時文件,程序執行結束,該臨時文件也被刪除。PHP給上傳的文件定義了四個變數:(如form變數名是file,而且register_globals打開)

$file #就是保存到伺服器端的臨時文件(如/tmp/phpxXuoXG )

$file_size #上傳文件的大小

$file_name #上傳文件的原始名稱

$file_type #上傳文件的類型

推薦使用:

$_FILES['file']['tmp_name']

$_FILES['file']['size']

$_FILES['file']['name']

$_FILES['file']['type']

㈣ php+js實現表單文件域多文件上傳

如果不考慮IE低版本的話 可以這么做

否則還是用Flash吧

HTML

<formmethod="post"action="upload.php"enctype="multipart/form-data">
<inputname='uploads[]'type="file"multiple>
<inputtype="submit"value="Send">
</form>

PHP

foreach($_FILES['uploads']['name']as$filename){
echo'<li>'.$filename.'</li>';
}

㈤ PHP跨域上傳的幾種方法

方法一:
文件夾:/home/web/attachments
虛擬二級目錄到/home/web/zxsv/下(支持同區域網的伺服器)
​這樣多個子域名進行上傳的設計時,只需要attachments目錄映射為相關的域名的二級目錄,這樣就可實現多個子域名共享一個附件伺服器了,這種方法最好是用區域網中的附件伺服器,這樣流量是分開的,當然訪問附件的域名是apache,ngixn,IIS等的虛擬二級目錄就不說了,好處是現有程序不做任何修改,唯一壞處就是兩台伺服器必須在一個區域網中,當然你用單台也就沒這個問題了
方法二:FTP同步更新
PHP是支持FTP的,給個FTP類裡面(不是我寫的,只是加了個建立多級目錄),自己看著辦吧,上傳後調用FTP類,同步到FTP伺服器中,好處是現有程序只需要在上傳那段加上FTP上傳就行了,壞處就是一定要支持FTP
<?php
$ftp=new Ftp;
//print_r($ftp->nlist(」"));
$ftp->makedir(」3″);
//$ftp->put(」comment.php」,」1.txt」);
$ftp->bye();
//R FTP 處理;
class ftp {
var $ftpUrl = 『www.zxsv.com』;
var $ftpUser = 『zxsv』;
var $ftpPass = 『111111′;
var $ftpDir = 『/zxsv/』;
var $ftpR = 」; //R ftp資源;
var $status = 」;
//R 1:成功;2:無法連接ftp;3:用戶錯誤;
function ftp() {
if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) {
if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) {
if (!empty($this->ftpDir)) {
ftp_chdir($this->ftpR, $this->ftpDir);
}
ftp_pasv($this->ftpR, true);//R 啟用被動模式;
$status = 1;
} else {
$status = 3;
}
} else {
$status = 2;
}
}
//R 切換目錄;
function cd($dir) {
return ftp_chdir($this->ftpR, $dir);
}
//建立目錄
function mkdir($dir){
return ftp_mkdir($this->ftpR, $dir);
}
function makedir($dir) {
if(!$dir) return 0;
$dir = str_replace( 「\\」, 「/」, $dir );
$mdir = 「」;
foreach(explode( 「/」, $dir ) as $val ) {
$mdir .= $val.」/」;
if( $val == 「..」 || $val == 「.」 ) continue;
if(!@mkdir($mdir)){
echo 「創建目錄 [".$mdir."]失敗.」;
//exit;
}
}
return true;
}
//刪除目錄
function rmdir($dir){
return ftp_rmdir($this->ftpR, $dir);
}
//R 返回當前路勁;
function pwd() {
return ftp_pwd($this->ftpR);
}
//R 上傳文件;
function put($localFile, $remoteFile = 」) {
if ($remoteFile == 」) {
$remoteFile = end(explode(』/', $localFile));
}
$res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY);
print_r($res);
while ($res == FTP_MOREDATA) {
$res = ftp_nb_continue($this->ftpR);
}
if ($res == FTP_FINISHED) {
return true;
} elseif ($res == FTP_FAILED) {
return false;
}
}
//R 下載文件;
function get($remoteFile, $localFile = 」) {
if ($localFile == 」) {
$localFile = end(explode(』/', $remoteFile));
}
if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) {
$flag = true;
} else {
$flag = false;
}
return $flag;
}
//R 文件大小;
function size($file) {
return ftp_size($this->ftpR, $file);
}
//R 文件是否存在;
function isFile($file) {
if ($this->size($file) >= 0) {
return true;
} else {
return false;
}
}
//R 文件時間
function fileTime($file) {
return ftp_mdtm($this->ftpR, $file);
}
//R 刪除文件;
function unlink($file) {
return ftp_delete($this->ftpR, $file);
}
function nlist($dir = 『/service/resource/』) {
return ftp_nlist($this->ftpR, $dir);
}
//R 關閉連接;
function bye() {
return ftp_close($this->ftpR);
}
}
?>

㈥ 怎樣用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";
}
?>

上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。
注釋:這個例子把文件保存到了名為 "upload" 的新文件夾。

㈦ 求PHP上傳文件夾的三種解決方案

1 壓縮上傳(用戶把文件夾壓縮後上傳),
2 input里加這個屬性webkitdirectory就是默認可以上傳文件夾了。谷歌瀏覽器可以。其他瀏覽器好像不行
3 業務上進行優化 如:(上傳時還是上傳文件,但是需要填寫文件夾得名稱,上傳之後,後台根據文件夾名稱,自動創建文件夾)

㈧ php在文件域元素中使用什麼屬性設置多文件上傳

php在文件域元素中使用multiple屬性設置多文件上傳。根據查詢相關公開信息顯示,打開php在文件域元素中,使用multiple屬性設置多文件上傳,創建數據表student,若創建成功,則輸出數據表student創建成功,否則輸出數據表student創建失敗。

㈨ 如何把自己的php文件發布到互聯網上

1)買個域名;
2)買個空間;
3)把域名解析到空間;
4)用FTP上傳「PHP」文件到空間;
5)訪問你的域名;
6)就能訪問你的網頁(或網站)了!
盼採納!

㈩ 如何修改PHP上傳文件大小限制

1. 在php.ini中,做如下修改:x0dx0a file_uploads = onx0dx0a upload_tmp_dir = /home/uploadx0dx0a upload_max_filesize = 4000Mx0dx0a post_max_size = 4000Mx0dx0a 一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。x0dx0a 但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網路真有100M/S的上傳高速,否則你還得關心關心下面的參數:x0dx0a max_execution_time = 600x0dx0a max_input_time = 600x0dx0a memory_limit = 128Mx0dx0ax0dx0a2. 在要確認上傳的

里加入以下行:x0dx0a x0dx0a3. $_FILES["userfile"]["error"]返回值說明:x0dx0a $_FILES['teacher_pic']['error'] = 1 文件大小超過了PHP.ini中的文件限制x0dx0a $_FILES['teacher_pic']['error'] = 2 文件大小超過了瀏覽器限制x0dx0a $_FILES['teacher_pic']['error'] = 3 文件部分被上傳x0dx0a $_FILES['teacher_pic']['error'] = 4 沒有找到要上傳的文件x0dx0a $_FILES['teacher_pic']['error'] = 5 伺服器臨時文件夾丟失x0dx0a $_FILES['teacher_pic']['error'] = 6 文件寫入到臨時文件夾出錯x0dx0a $_FILES['teacher_pic']['error'] = -1 末充許的類型x0dx0a $_FILES['teacher_pic']['error'] = -2 文件過大,上傳文件不能超過{$this->maxSize}個位元組x0dx0a $_FILES['teacher_pic']['error'] = -3 上傳失敗x0dx0a $_FILES['teacher_pic']['error'] = -4 建立存放上傳文件目錄失敗,請重新指定上傳目錄x0dx0a $_FILES['teacher_pic']['error'] = -5 必須指定上傳文件的路徑

閱讀全文

與php文件域上傳相關的資料

熱點內容
未來最值得投資的加密貨幣 瀏覽:526
ascii碼是編譯的時候用嗎 瀏覽:779
壓縮機感應包可以通用嗎 瀏覽:410
方舟伺服器怎麼發布到搜索列表 瀏覽:270
xml防反編譯 瀏覽:239
數據傳輸加密系統技術方案 瀏覽:842
程序員沒有準備去面試 瀏覽:4
51單片機usb滑鼠 瀏覽:879
qq伺服器的ip地址查詢 瀏覽:112
java仿qq聊天 瀏覽:400
解壓的ipa重新打包 瀏覽:142
程序員那麼可愛vip版 瀏覽:239
程序員怎麼升職 瀏覽:243
圖形化命令按鈕vb 瀏覽:987
vcu盤加密怎麼設置 瀏覽:414
如何加密備份微信聊天記錄 瀏覽:529
安卓手機如何模擬鍵盤 瀏覽:932
查看dns地址命令 瀏覽:768
android錄屏工具 瀏覽:841
成都互動直播系統源碼 瀏覽:955