●sample.csvの内容
1,a.jpg
2,b.jpg
3,c.jpg
※ 各レコードは、"番号","画像ファイル"で構成されています。
※ 画像ファイルは、ローカル(c:\temp\)においてあるとします。
●実現機能
①ユーザがsample.csvファイルを選択する
②システムは、sample.csvの各レコードにある画像ファイルを読み込む
質問は、②についての実現方法がわかりませんので、ご教授をお願いいたします。
A案)PUSHで画像ファイルを選択せずに、$_FILEや一時保存先にこの画像ファイルを入れる。
B案)$_FILEを使用せずに、画像ファイルをローカルから直接読み込む。
C案)他によい方法
よろしくお願いいたします。
2番のところの読み込むところが少し不明ですが・・・・。
http://www.php-ref.com/web/03_move_uploaded_file.html
とりあえず、
$_FILEを使用して、csvのファイルパスを取得します。
それを$filepathとします。
$filepath = $_FILE[ パラメータ名 ][ tmp_name ];
で、これをexplode等でcsvをバラします。
<?php $cnt = 0; $fp = fopen( $filepath, 'r') or die; while ( !feof( $fp ) ) { $row = fgets($fp, 100); list( $no[$cnt], $path[$cnt] ) = explode( ',', $row ); $cnt++; } fclose($fp); $basepath = "c:\\temp\\"; //←WindowsのPHPちょっと自信ありません・・。 //とりあえず、画面に出力する。 for ( $i = 0; $i < count($no); $i++ ) { print "<img src = \"$basepath$path[$i]\" />\r\n"; } ?>
こんな感じでしょうか。
//読み込むという意味がいろいろなパタンがありますが、
http://d.hatena.ne.jp/littlebuddha/20100217/1266421016
どのパタンでも、パスを指定すればOKです。
>②システムは、sample.csvの各レコードにある画像ファイルを読み込む
「読み込む」という日本語の意味が分からない。
クライアントPC(ユーザーが利用しているPC)のローカルフォルダにある画像ファイルにアクセスしたいという意味なら、それは不可能。
PHPに限らず、サーバサイド・スクリプトではセキュリティ上、そのようなことはできない。
JavaScriptなどクライアントサイド・スクリプトを使うのが現実的。
コメント(1件)
sample.csvも各画像ファイルも、アクセスしたユーザー側のPC内にあるという事ですか?
セキュリティの関係上、ユーザー側のPCから勝手にファイルを取得する事はできないはずです。
ユーザーがsample.csvと一緒に画像ファイルを選択して、サーバーにアップロードするしかないと思います。