Php/fuelphp/画像アップロード
提供: 初心者エンジニアの簡易メモ
(セキュリティ未対応なままです。自己責任で。。
目次
ひな形用意
cp fuel/core/config/upload.php fuel/app/config/upload.php
upload設定ファイル編集
vi fuel/app/config/upload.php
'path' => DOCROOT.'/uploads' ,
'ext_whitelist' => array('img', 'jpg', 'jpeg', 'gif', 'png'),
uploadディレクトリ作成
mkdir public/uploads -m 777
画像アップロードロジック
vi fuel/app/classes/controller/upload.php
class Controller_Upload extends Controller
{
public function before() {
parent::before();
Config::load('upload', true);
}
public function get_index() {
$files = array();
try {
$files = File::read_dir(Config::get('upload.path'));
} catch (InvalidPathException $e) {
}
return View::forge('upload/index', array('files' => $files));
}
public function post_upload() {
Upload::process(array('path' => Config::get('upload.path')));
if (Upload::is_valid()) {
Upload::save();
}
return Response::redirect('upload/index');
}
}
vi fuel/app/views/templates/upload/index.php
<html>
<body>
<form action="/upload/upload" method="post" enctype="multipart/form-data">
<input type="file" name="upload[]" multiple="true" />
<input type="submit" />
</form>
<?php foreach ($files as $file) { ?>
<?php if (is_array($file) or !is_file(Config::get('upload.path').DS.$file)) continue; ?>
<img src="/uploads/<?php echo $file; ?>" />
<?php break; ?>
<?php } ?>
</body>
</html>
アップロードファイルの先頭ファイル名変更
vi fuel/app/config/upload.php
'prefix' => 'test_',
アップロードファイルの後ろファイル名変更
vi fuel/app/config/upload.php
'suffix' => '_test',
拡張子変更
'extension' => 'img',
既にあるファイルをupしても自動リネームしないように変更
'auto_rename' => false, 'overwrite' => true,
ファイル名をつけてアップロード
Upload::processでのみ使用可能
Upload::process(
array(
'path' => Config::get('upload.path'),
'new_name' => 'hoge',
)
);
