最基本的上傳方式是
1.使用者把檔案上傳到 web server
2. web server 把上傳的檔案 利用 move_uploaded_file() 函式,將檔案移到指定的資料夾內
注意:move_uploaded_file() 會真的把檔案從 /tmp 搬走,如果後續還會需要針對這個檔案做處理,可以先用 copy() 建立一個副檔,或是把 move_uploaded_file() 放到後面再執行。
但是,有時候我們需要把上傳的檔案放到另一台專門放檔案的 file server,這時候,就無法利用 move_uploaded_file() 去搬移檔案了,而需要利用 ftp 去傳送檔案至 file server,方法很簡單...
直接看程式碼:
$file = $_FILES['file'];
$file_tmp = $file['tmp_name'];
$file_name = $file['name'];
if(is_uploaded_file($file_tmp)){ //確定user有"上傳"檔案 (資安檢查)
$file_ext = strrchr($file_name,'.'); //上傳檔案的副檔名
$file_name_new = date('YmdHis').$file_ext;
$host = '127.0.0.1';
$port = '21';
$user = 'admin';
$pass = '123456';
$link = ftp_connect($host,$port);
$login = ftp_login($link,$user,$pass);
ftp_chdir($link,'filedir'); //切換到要放檔案的資料夾
if(ftp_put($link,$file_name_new,$file_tmp,FTP_BINARY)){
$msg = '上傳成功';
}else{
$msg = '上傳失敗';
}
}else{
$msg = '上傳失敗';
}
ftp_close($link);
echo $msg;
No comments:
Post a Comment