Source for file FileUpload.php
Documentation is available at FileUpload.php
* Teeple2 - PHP5 Web Application Framework inspired by Seasar2
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
* @author Mitsutaka Sato <miztaka@gmail.com>
* @license http://www.php.net/license/3_0.txt PHP License 3.0
define('UPLOAD_ERR_INI_SIZE', 1);
define('UPLOAD_ERR_FORM_SIZE', 2);
define('UPLOAD_ERR_PARTIAL', 3);
define('UPLOAD_ERR_NO_FILE', 4);
define('UPLOAD_ERROR_TYPE', 'FileUpload');
* @var Teeple_ActionChain
$this->log->info("CompleteActionフラグが立っているため、FileUploadは実行されませんでした。");
if (isset
($attributes["name"])) {
$this->fileUpload->setName($attributes["name"]);
if (isset
($attributes["filemode"])) {
$this->fileUpload->setFilemode($attributes["filemode"]);
$sizeError_ini =
array();
$typeError_ini =
array();
$noFileError_ini =
array();
foreach($attributes as $key =>
$value) {
if (substr($key,0,7) ==
"maxsize") {
$maxsize_ini["default"] =
$value;
if (substr($key,0,4) ==
"type") {
$type_ini["default"] =
$typeArray;
if (substr($key,0,9) ==
"sizeError") {
$sizeError_ini["default"] =
$value;
if (substr($key,0,9) ==
"typeError") {
$typeError_ini["default"] =
$value;
if (substr($key,0,11) ==
"noFileError") {
$noFileError_ini["default"] =
$value;
} else if (substr($key,12,7) ==
"whether") {
$noFileError_ini["whether"] =
$value;
$noFileError_whether =
0;
$error =
$this->fileUpload->getError();
$mime_type_check =
$this->fileUpload->checkMimeType($type_ini);
$filesize_check =
$this->fileUpload->checkFilesize($maxsize_ini);
//以下はforeachで各ファイルでエラーチェックを行う
foreach ($error as $key =>
$val) {
$this->request->setFilterError('FileUpload');
//$errorList->setType(UPLOAD_ERROR_TYPE);
if (isset
($attributes["iniSizeError"])) {
$message =
$attributes["iniSizeError"];
$message =
"アップロードされたファイルは、php.ini の upload_max_filesize ディレクティブの値を超えています。";
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
//$errorList->setType(UPLOAD_ERROR_TYPE);
if (isset
($attributes["formSizeError"])) {
$message =
$attributes["formSizeError"];
$message =
"アップロードされたファイルは、HTMLフォームで指定された MAX_FILE_SIZE を超えています。";
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
//$errorList->setType(UPLOAD_ERROR_TYPE);
if (isset
($attributes["partialError"])) {
$message =
$attributes["partialError"];
$message =
"アップロードされたファイルは一部のみしかアップロードされていません。";
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
if (isset
($noFileError_ini[$key])) {
//$errorList->setType(UPLOAD_ERROR_TYPE);
$message =
$noFileError_ini[$key];
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
}else if (isset
($noFileError_ini["default"])) {
//$errorList->setType(UPLOAD_ERROR_TYPE);
$message =
$noFileError_ini["default"];
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
} else if (isset
($noFileError_ini["whether"])) {
$noFileError_whether =
$noFileError_whether +
1;
}else {// PHP自体が感知するエラーは発生していない場合
// maple.iniで設定されたサイズを超えていた場合
if (count($maxsize_ini) >
0) {
if (!$filesize_check[$key]) {
//$errorList->setType(UPLOAD_ERROR_TYPE);
if (isset
($sizeError_ini[$key])) {
$message =
$sizeError_ini[$key];
}else if (isset
($sizeError_ini["default"])) {
$message =
$sizeError_ini["default"];
$message =
"ファイルはアップロードされませんでした。";
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
// maple.iniで設定されたMIME-Typeではなかった場合
if (count($type_ini) >
0) {
if (!$mime_type_check[$key]) {
//$errorList->setType(UPLOAD_ERROR_TYPE);
if (isset
($typeError_ini[$key])) {
$message =
$typeError_ini[$key];
}else if (isset
($typeError_ini["default"])) {
$message =
$typeError_ini["default"];
$message =
"指定されたファイル形式ではありません。";
//$errorList->add($this->fileUpload->getName()."[".$key."]", $message);
$this->request->addErrorMessage($message);
if (isset
($noFileError_whether) &&
count($error) ==
$noFileError_whether) {
//$errorList->setType(UPLOAD_ERROR_TYPE);
$message =
$noFileError_ini["whether"];
//$errorList->add($this->fileUpload->getName(), $message);
$this->request->addErrorMessage($message);
$this->log->trace("フィールド名が指定されていません", "Filter_FileUpload#execute");