Ⅰ 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向ftp上傳文件
其實就是三步問題,和你操作ftp工具一樣,思路基本一樣。
參考資料:http://www.itnet.org.cn/news419.html
Ⅲ 通過php連接ftp需要怎麼樣的配置的,我直接連接怎麼鏈接不上呢
你這段代碼代碼我測試過了,沒有問題,可以正常連接到FTP伺服器。
從以下兩個方面來考慮吧:
① 你的PHP伺服器是否支持FTP功能,通過phpinfo()函數查看,一定要是FTP support:enabled。若不是,找下資料,開啟PHP支持FTP功能。
② 你的FTP伺服器是否正常運行,先通過FTP客戶端登陸一下,若不能登錄,則要先解決FTP登錄的問題。
Ⅳ <php> file_get_contents() 可以通過ftp獲取內容嗎 我想獲取通過ftp上的文件。
通常,在 php 里獲取 ftp 伺服器上的文件,使用 ftp_get 及相關的 ftp 函數,以下是示例:
<?php
//definesomevariables
$local_file='local.zip';
$server_file='server.zip';
//connecttotheFTPserver
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
//trytodownload
if(ftp_get($conn_id,$local_file,$server_file,FTP_BINARY)){
echo"Successfullywrittento$local_file";
}else{
echo"Therewasaproblem";
}
//closetheconnection
ftp_close($conn_id);
?>
Ⅳ 用PHP怎樣實現把文件從一台伺服器,移動到另一台FTP伺服器呢
<?php
// 鏈接ftp
$conn = ftp_connect('地址', '埠', '超時時間');
// 登錄
ftp_login($conn, '賬號', '密碼');
$here = ftp_pwd($conn);
//獲取伺服器端系統信息ftp_systype()
$server_os = ftp_systype($conn);
//被動模式(PASV)的開關,打開或關閉PASV(1表示開)
ftp_pasv($conn, 1);
//進入目錄中用ftp_chdir()函數,它接受一個目錄名作為參數。
ftp_chdir($conn, "public_html");
//ftp_mkdir($conn, "test");
ftp_put($conn, "伺服器顯示的名稱", "要上傳的文件名稱", FTP_ASCII);
ftp_quit($conn);
Ⅵ php使用ftp_put上傳圖片出錯問題 圖片是上傳成功了,但是一個空白文件,為什麼為出現這狀況
你貼的代碼都是變數,實在很難確定你的錯誤到底在哪裡,希望你最好能夠貼出具體的代碼,因為這個可能是你路徑問題,或者是連接問題,也可能是轉換目錄問題。
下面是我寫的能夠成功完成文件上傳ftp的代碼,僅供參考。
<?php
$conn = ftp_connect("192.168.1.104") or die ("error");
ftp_login($conn, "benzlee", "123456");
ftp_chdir($conn, "folder");
$upload = ftp_put($conn, "test.jpg", "D:\\123.jpg", FTP_BINARY);
if($upload)
{
echo 1;
ftp_close($conn);
}
else
{
die("上傳圖片失敗------" . "D:\\123.jpg");
}
希望對你有幫助,有什麼不明白的,我盡量幫忙,謝謝^^
Ⅶ 用php如何把一些文件和圖片上傳到另一指定的伺服器
具體的說不了 。只能給你個思路。 先把圖片文件上傳到原來的伺服器上。 然後用php 的函數 ftp_put 之類的函數 傳到另一台伺服器上