<?php /** * UploadFile * アップロードされたファイルのデータを保持するクラス。 * FileUploadUtilと一緒に利用する。 * $Id: UploadFile.inc,v 1.1 2015/10/08 11:18:56 wanggb Exp $ * @author iimuro * @access public * @package jp.aimslib2.io */ class UploadFile { /** * オリジナル名 */ public $name; /** * ファイルのMIME型。ただし、ブラウザがこの情報を提供する場合。 例えば、"image/gif"のようになります。 */ public $type; /** * アップロードされたファイルのバイト単位のサイズ。 */ public $size; /** * アップロードされたファイルがサーバー上で保存されているテンポラ リファイルの名前。 */ public $tmp_name; /** * このファイルアップロードに関する エラーコード */ public $error; public $is_tmp = true; /** * ファイルを指定した名前で保存します。 * 1回しか呼ぶことはできません。 * @param $file_name 保存するファイル名。フルパスで書くことが望ましい。 * @param $chmod 保存後、ファイルの属性を変更する場合に指定。指定しない場合は766。 * @return 保存に成功した場合true。 */ public function save($file_name, $chmod = "766") { if (!$this->is_tmp) { ErrorLogger::doOutput("File already saved:" . $this->name, 0); return false; } exec("touch " . $file_name); if (move_uploaded_file($this->tmp_name, $file_name)) { // アップロード成功 ErrorLogger::doOutput("File upload OK:" . $file_name, 0); exec("chmod " . $chmod . " " . $file_name); $this->is_tmp = false; return true; } else { ErrorLogger::doOutput("File upload failed:" . $this->name, 0); return false; } } /** * */ public function readTmpData() { $fd = fopen($this->tmp_name, "r"); $contents = fread($fd, filesize($this->tmp_name)); fclose($fd); return $contents; } } ?>