FTPを利用して、リモート先のフォルダ(別サーバ)へ画像ファイルをアップロードし、それを表示させる動きを作っています。
ファイルのアップロード成功後、ftp_nlistを利用してフォルダ内容の取得はできているのですが
表示用の配列へファイルの内容を入れてassignで渡しても実行画面では取得したファイル数と同じ数の×印で表示されます。
また、同画面内でFTPを介さない画像表示の処理も同様に行わせており、
保存先のフォルダ名の指定で配列をassignすることでそちらは正常に表示されます。
FTPの接続確立時にサーバアドレス、ユーザ名、パスワードなどをして指定しているのでそちら絡みかと思うのですが……
ftp_nlistの配列内容の先頭に”http://xxx.xxx.x.xx(サーバアドレス)”を付けてみるなどしたのですが上手く行きませんでした。
別サーバから取得した画像ファイルのURL(アクセスパス?)はどのように生成すればよいのでしょうか。
お力添えいただけますと幸いです。
PHP
1 // FTP接続情報を設定する 2 $ftp = array( 3 'ftp_server' => 'xxx.xxx.x.xx', 4 'ftp_user_name' => '〇〇〇〇', 5 'ftp_user_pass' => '〇〇〇〇' 6 ); 7 // バックアップ先フォルダ名 8 $remoteFolder = '/var/tmp/image/'; 9 10 // FTP接続を確立する 11 $connId = ftp_connect($ftp['ftp_server']); 12 13 // ユーザ名とパスワードでログインする 14 $loginResult = ftp_login($connId, $ftp['ftp_user_name'], $ftp['ftp_user_pass']); 15 16 // FTPサーバ上でバックアップ先フォルダに移動する 17 if(ftp_chdir($connId, $remoteFolder)){ 18 19 //ファイルアップロード 20 $tmpCount = 0; 21 22 foreach($checkFile as $ufile){ 23 24 $tmpCount++; 25 26 if($tmpCount >= 1 && $tmpCount <= 9){ 27 $uCount = str_pad($tmpCount, 2, "0", STR_PAD_LEFT); 28 } 29 30 $tmp_file = 'tmp'.$uCount.'.jpg'; 31 32 ftp_put($connId, $tmp_file, $ufile, FTP_BINARY); 33 34 } 35 36 //表示用ファイルの取得 37 $uplist = ftp_nlist($connId, $remoteFolder); 38 39 foreach($uplist as $file){ 40 $upFile[] = ’http://xxx.xxx.x.xx’.$file; 41 } 42 } 43 44 // 接続を閉じる 45 ftp_close($conn_id); 46 47 var_dump($upFile) //確認用
var_dumpの結果(配列内の要素数1が場合)
array(1) { [0]=> string(24) "http://xxx.xxx.x.xx/var/tmp/image/tmp01.jpg" }
回答1件
あなたの回答
tips
プレビュー