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', ) );