ファイル入力からファイルをアップロードします。print_r($_FILES) を実行すると、いくつかの情報を取得できますが、ファイルの完全なローカル パス (サーバーではなくコンピューター上のパス) はわかりません。どうすればこれを入手できますか?
CodeIgniter で FTP ライブラリを使用するには、これが必要です。それを使用してファイルをアップロードする方法に関するドキュメントはこちらです。
ご覧のとおり、理由はわかりませんが、完全なローカル パスが必要です。
ファイル入力からファイルをアップロードします。print_r($_FILES) を実行すると、いくつかの情報を取得できますが、ファイルの完全なローカル パス (サーバーではなくコンピューター上のパス) はわかりません。どうすればこれを入手できますか?
CodeIgniter で FTP ライブラリを使用するには、これが必要です。それを使用してファイルをアップロードする方法に関するドキュメントはこちらです。
ご覧のとおり、理由はわかりませんが、完全なローカル パスが必要です。
私はこれを解決しました。
public function upload($file, $folder) {
$this->CI->ftp->upload($_FILES['file']['tmp_name'], '/public_html/rest/of/path/' . $_FILES['file']['name'], 'ascii', 0775);
}
ファイルがアップロードされているので、 でアクセスできます$FILES['file']['tmp_name']
。これはクラス内からのものであるため、 を使用して$this->CI
います。それ以外の場合は、を使用します$this
。
ファイルアップロードパスはサーバーごとに変化する変数であるため、次のmove_uploaded_file()
関数を使用することをお勧めします。
$target = "uploads/myfile.something";
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target)) {
// do something
}
そうすれば、パスが変更されても、パスが何であっても常に機能します。これtarget
は、スクリプトが実行されている現在のフォルダーに相対的です。