有時我們為了方便、安全、快速,會把上傳的文件單獨放一臺主機用二級域名訪問,但是PHP如何把上傳的文件放到另外一臺主機呢?這就要跨域跨主機上傳了,現在我們用實例來告訴你如何實現.
如何跨網域跨主機跨server上傳文件?一般最基本的上傳方式是:
1.使用者把文件上傳到 web server
2. web server 把上傳的文件 利用 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 = '上傳成功'; //開源軟件:Vevb.com
- }else{
- $msg = '上傳失敗';
- }
- }else{
- $msg = '上傳失敗';
- }
- ftp_close($link);
- echo $msg;
新聞熱點
疑難解答