phpftp上傳文件
$conn_id = ftp_connect('localhost') or die('can\'t connect to ftp');
// login with username and password
$login_result = @ftp_login($conn_id, $ftpname, $ftppass);
// check connection
if ((!$conn_id) || (!$login_result)) {
echo '連接出錯';
exit;
}
//$path 路徑$fliename文件名多個文件上傳
$dir=ftp_chdir($conn_id,$filename);//上傳目錄
$Name=array_filter(explode('|',$fliename));
foreach ($Name as $key=>$val){
ftp_put($conn_id, $val, $path.$val, FTP_BINARY)or die('上傳失敗!');
}
ftp_close($conn_id);
② 通過input的file屬性將文件用php的ftp上傳到伺服器
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>
提示:
<form>標簽的enctype屬性規定了在提交表單時要使用哪種內容類型。在表單需要二進制數據時,比如文件內容,請使用"multipart/form-data"。
<input>標簽的type="file"屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。
注釋:允許用戶上傳文件是一個巨大的安全風險。請僅僅允許可信的用戶執行文件上傳操作。
php部分:
創建上傳腳本
"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,你可以從客戶計算機向遠程伺服器上傳文件。
第一個參數是表單的inputname,第二個下標可以是"name","type","size","tmp_name"或"error"。就像這樣:
$_FILES["file"]["name"]-被上傳文件的名稱
$_FILES["file"]["type"]-被上傳文件的類型
$_FILES["file"]["size"]-被上傳文件的大小,以位元組計
$_FILES["file"]["tmp_name"]-存儲在伺服器的文件的臨時副本的名稱
$_FILES["file"]["error"]-由文件上傳導致的錯誤代碼
這是一種非常簡單文件上傳方式。基於安全方面的考慮,您應當增加有關什麼用戶有權上傳文件的限制。
上傳限制
在這個腳本中,我們增加了對文件上傳的限制。用戶只能上傳.gif或.jpeg文件,文件大小必須小於20kb:
<?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"Storedin:".$_FILES["file"]["tmp_name"];
}
}
else
{
echo"Invalidfile";
}
?>
注釋:對於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"ReturnCode:".$_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"Tempfile:".$_FILES["file"]["tmp_name"]."<br/>";
if(file_exists("upload/".$_FILES["file"]["name"]))
{
echo$_FILES["file"]["name"]."alreadyexists.";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo"Storedin:"."upload/".$_FILES["file"]["name"];
}
}
}
else
{
echo"Invalidfile";
}
?>
上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。
注釋:這個例子把文件保存到了名為"upload"的新文件夾。
③ 什麼是ftp文件,怎麼將php網站文件上傳到伺服器
ftp是
文件傳輸協議
,利用此協議可以在網路上傳輸文件。
把文件上傳到伺服器,一般都是使用ftp的方法,因為往往伺服器都會提供ftp功能。具體操作需要安裝一個方便操作的ftp客戶端,例如TotalCommander就很好,在客戶端裡面建議一個會話,輸入伺服器的地址、用戶名、密碼,然後就可以連接伺服器,連接成功後可以看見伺服器上的文件,可以和本地的進行
雙向傳輸
(可以上傳和下載)。
如果只上傳個別文件,可以使用瀏覽器或者DOS進行傳輸,瀏覽器的方法是打開地址:ftp://用戶名:密碼@伺服器地址/,DOS命令是ftp
伺服器地址,然後輸入用戶名和密碼。
④ PHP項目如何上傳到伺服器
用FTP上傳工具上傳即可。這里以8UFTP軟體為例:
1、下載安裝FTP軟體,輸入伺服器IP地址,FTP的用戶名和密碼進行連接。
⑤ 用php向ftp上傳文件
其實就是三步問題,和你操作ftp工具一樣,思路基本一樣。
參考資料:http://www.itnet.org.cn/news419.html
⑥ 如何使用php中ftp函數上傳文件以及解決上傳文件失敗的方法
一、 ftp上傳圖片參數說明。
1 $source:本機圖片完整的路徑。(/a/b/c.jpg)
2 $des :上傳目標linux主機完整的路徑。
3 $ftp_server:ftp地址
4 $ftp_user_name:ftp用戶名
5 $ftp_user_pass: ftp密碼
6 $port:埠
二、如何使用php中ftp函數上傳文件的方法
例如:
本地地址為:/a/b/c.jpg
目標地址為:/d/a/b/c.jpg
2.1、linux主機上傳linux主機。
01 function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 // 此步驟是在於上傳目錄與本機的目錄不一致轉換使用
04 $des = "/d" . $des;
05 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
06 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
07 ftp_pasv($conn_id, TRUE);
08 $ftp_folder = dirname($des);
09 $dir = explode("/", $ftp_folder);
10 $path = "";
11 for ($i = 0; $i < count($dir); $i++) {
12 $path .= "/" . $dir[$i];
13 if (!ftp_chdir($conn_id, $path)) {
14 $result = ftp_mkdir($conn_id, $path);
15 }
16 }
17 if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {
18 return 1;
19 } else {
20 return 0;
21 }
22 ftp_close($conn_id);
23 }
2.2、windows主機上傳linux主機。
01 function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 $des = "/d" . $des;
04 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
05 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
06 ftp_pasv($conn_id, TRUE);
07 $ftp_folder = dirname(str_ireplace('\\', '/', $des));
08 $dir = explode("/", $ftp_folder);
09 $path = "";
10 for ($i = 0; $i < count($dir); $i++) {
11 $path .= "/" . $dir[$i];
12 if (!ftp_chdir($conn_id, $path)) {
13 $result = ftp_mkdir($conn_id, $path);
14 }
15 }
16 if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {
17 return 1;
18 } else {
19 return 0;
20 }
21 ftp_close($conn_id);
22 }
上面的兩種使用php中ftp函數上傳文件的方法基本可以滿足正常的使用。
⑦ phpstorm中文版怎麼上傳ftp
方法/步驟
1
打開工具欄
「Tools」-》「Deployment」-》「Brower
Remote
Host」
2
在窗口右側可以看見一個「Remote
Host」區域,點開三個小點點的按鈕,新建一個服務
3
填好你的FTP的信息,填完可以點「Test
FTP
Connection」測試一下連接是否成功,
4
到這一步基本就可以完成遠程動態修改FTP項目了。連接上以後,它默認在窗口的右邊,你可以直接拉到左邊。這樣看起來就像是在修改本地項目。編輯區右上角有提交按鈕,也可以使用快捷鍵。如果想download到本地,那麼請往下看
5
如果想下載到本地。點開前面圖中的「Advanced
options」按鈕,彈出如下對話框,勾選「Passive
mode」被動模式:
6
接下來點「Mappings」,選擇你下載伺服器文件時緩存映射到本地電腦的地方":
7
在文件的名字上右鍵選擇「Upload
here」下載到本地,它會下載到你映射的地方
8
最後,你甚至可以打開菜單欄上「VCS」-》「Local
History」-》「Show
History」,你會看見,本地版本庫不但幫你保存了最後的修改,而且你對文件做的每一步修改它都有記錄,左側欄顯示的是修改時間,中間是顯示的修改的
地方,右側是當前的文件樣子,這樣你再也不怕修改錯了不能返回以前的步驟了
⑧ 用php如何把一些文件和圖片上傳到另一指定的伺服器
一個實例:
首先,在自己台式機和筆記本上都開通了ftp,這個不會的同學可以網上查serv-u,相關教程肯定不少的。
然後在台式機本地做了個測試:
$ftp_server = "192.168.1.100";
$ftp_user_name = "laohu";
$ftp_user_pass = "123456";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
$file = 'test.txt';
$remote_file = '/test/a.txt';
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
echo "文件移動成功\n";
} else {
echo "移動失敗\n";
}
ftp_close($conn_id);
運行後:文件移動成功。
要的就是這個效果了,之後用台式機做程序伺服器,上傳附件時全用ftp方法上傳至筆記本上,筆記本ip是105,相應代碼如下:
if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
$ftp_server = "192.168.1.105";
$ftp_user_name = "lesley";
$ftp_user_pass = "123456";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
$file = $_FILES['uploadfile']['tmp_name'];
$remote_file = '/test/'.$_FILES['uploadfile']['name'];
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
echo "文件:".$_FILES['uploadfile']['name']."上傳成功\n";
} else {
echo "上傳失敗\n";
}
ftp_close($conn_id);
}
對應的前台頁面代碼:
<form action="uploadfile.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile" id="uploadfile" />
<input type="submit" name="submit" value="submit" />
</form>
運行後確實成功。
需要注意:
在用ftp_put方法時,第四個參數傳送模式,需要用FTP_BINARY(二進制模式),用FTP_ASCII(文本模式)時,圖片能上傳但無法顯示,其他文件重命名、中文亂碼解決、上傳許可權控制等,就不在此提及了。
⑨ 我已經有FTP工具了,web伺服器也裝好了PHP。怎麼將文件上傳到一個web伺服器
要分情況來說,如果你是申請的網上的免費主頁空間(支持php),那麼空間的提供商一般會給你提供一個後台的界面讓你上傳文件,或者給你開通ftp服務,通過ftp上傳,你的web地址(域名)由空間提供商給你。
另一種情況是,自己在電腦上搭建了web伺服器,你只需要把自己做好的網頁,腳本程序拷貝到web伺服器設置的主頁目錄就可以了,訪問地址一般是http://本機ip
如果是自己的主機託管在機房,想用ftp上傳文件,要看你的web伺服器是用什麼搭建的,如果是IIS,直接把ftp服務設置好,啟用就可以了,如果是apache伺服器,就要再裝個第三方的ftp服務端程序,比如server-U等等
⑩ 怎麼通過PHP來支持FTP和HTTP上傳
給你一些 php 操作 ftp 的函數:
FTP 函數
ftp_alloc— 為要上傳的文件分配空間
ftp_cp— 切換到當前目錄的父目錄
ftp_chdir— 在 FTP 伺服器上改變當前目錄
ftp_chmod— 設置 FTP 伺服器上的文件許可權
ftp_close— 關閉一個 FTP 連接
ftp_connect— 建立一個新的 FTP 連接
ftp_delete— 刪除 FTP 伺服器上的一個文件
ftp_exec— 請求運行一條 FTP 命令
ftp_fget— 從 FTP 伺服器上下載一個文件並保存到本地一個已經打開的文件中
ftp_fput— 上傳一個已經打開的文件到 FTP 伺服器
ftp_get_option— 返回當前 FTP 連接的各種不同的選項設置
ftp_get— 從 FTP 伺服器上下載一個文件
ftp_login— 登錄 FTP 伺服器
ftp_mdtm— 返回指定文件的最後修改時間
ftp_mkdir— 建立新目錄
ftp_nb_continue— 連續獲取/發送文件(non-blocking)
ftp_nb_fget— 從 FTP 伺服器獲取文件並寫入到一個打開的文件(非阻塞)
ftp_nb_fput— 將文件存儲到 FTP 伺服器 (非阻塞)
ftp_nb_get— 從 FTP 伺服器上獲取文件並寫入本地文件(non-blocking)
ftp_nb_put— 存儲一個文件至 FTP 伺服器(non-blocking)
ftp_nlist— 返回給定目錄的文件列表
ftp_pasv— 返回當前 FTP 被動模式是否打開
ftp_put— 上傳文件到 FTP 伺服器
ftp_pwd— 返回當前目錄名
ftp_quit— ftp_close 的 別名
ftp_raw— 向 FTP 伺服器發送命令
ftp_rawlist— 返回指定目錄下文件的詳細列表
ftp_rename— 更改 FTP 伺服器上的文件或目錄名
ftp_rmdir— 刪除 FTP 伺服器上的一個目錄
ftp_set_option— 設置各種 FTP 運行時選項
ftp_site— 向伺服器發送 SITE 命令
ftp_size— 返回指定文件的大小
ftp_ssl_connect— 打開 SSL-FTP 連接
ftp_systype— 返回遠程 FTP 伺服器的操作系統類型
例子:
<?php
$ftp_server="";
$ftp_user_name="";
$ftp_user_pass="";
$file="";//tobeuploaded
$remote_file="";
//簡歷ftp鏈接
$conn_id=ftp_connect($ftp_server);
//使用用戶名和密碼登錄
$login_result=ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
//上傳文件
if(ftp_put($conn_id,$remote_file,$file,FTP_ASCII)){
echo"成功上傳文件:$file ";
exit;
}else{
echo"上傳文件錯誤:$file ";
exit;
}
//關閉ftp鏈接
ftp_close($conn_id);