本文整理汇总了PHP中page::getFileType方法的典型用法代码示例。如果您正苦于以下问题:PHP page::getFileType方法的具体用法?PHP page::getFileType怎么用?PHP page::getFileType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类page
的用法示例。
在下文中一共展示了page::getFileType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pic_upload
public function pic_upload()
{
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array();
$request_data = $this->input->post();
$request_product_id = $request_data['product_id'];
// 请求的对应的图片说明
$request_pic_title_assoc = !empty($request_data) && isset($request_data['myPorductpicTitle']) && is_array($request_data['myPorductpicTitle']) && !empty($request_data['myPorductpicTitle']) ? $request_data['myPorductpicTitle'] : array();
//多附件上传 上传的表单域名字
$attach_field = 'myPorductpic';
// 附件应用类型
$attach_app_type = 'productPicAttach';
// 如果有上传请求
if (!page::issetFile($attach_field)) {
throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 400);
}
//读取当前应用配置
$attach_setup = Kohana::config('attach.' . $attach_app_type);
$mime_type2postfix = Kohana::config('mimemap.type2postfix');
$mime_postfix2type = Kohana::config('mimemap.postfix2type');
// 表单文件上传控件总数量
$file_upload_count = page::getFileCount($attach_field);
// 初始化一些数据
// 本次文件上传总数量
$file_count_total = 0;
// 本次文件上传总大小
$file_size_total = 0;
// 上传文件meta信息
$file_meta_data = array();
// 遍历所有的上传域 //验证上传/采集上传信息
for ($index = 0; $index < $file_upload_count; $index++) {
// 如果上传标志成功
if ((int) $_FILES[$attach_field]['error'][$index] === UPLOAD_ERR_OK) {
if (!is_uploaded_file($_FILES[$attach_field]['tmp_name'][$index])) {
throw new MyRuntimeException(Kohana::lang('o_product.file_upload_error'), 400);
}
$file_size_current = filesize($_FILES[$attach_field]['tmp_name'][$index]);
if ($attach_setup['fileSizePreLimit'] > 0 && $file_size_current > $attach_setup['fileSizePreLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_not_flow') . $attach_setup['fileSizePreLimit'], 400);
}
$file_type_current = FALSE;
$file_type_current === FALSE && ($file_type_current = page::getFileType($attach_field, $index));
// 尝试通过Mime类型判断
$file_type_current === FALSE && page::getImageType($_FILES[$attach_field]['tmp_name'][$index]);
// 尝试通过图片类型判断
$file_type_current === FALSE && ($file_type_current = page::getPostfix($attach_field, $index));
// 尝试通过后缀截取
//array_walk($attach_setup['allowTypes'], 'strtolower');
foreach ($attach_setup['allowTypes'] as $idx => $item) {
$attach_setup['allowTypes'][$idx] = strtolower($item);
}
if (!empty($attach_setup['allowTypes']) && !in_array(strtolower($file_type_current), $attach_setup['allowTypes'])) {
throw new MyRuntimeException(Kohana::lang('o_product.pic_type_error'), 400);
}
// 当前文件mime类型
$file_mime_current = isset($_FILES[$attach_field]['type'][$index]) ? $_FILES[$attach_field]['type'][$index] : '';
// 检测规整mime类型
if (!array_key_exists($file_mime_current, $mime_type2postfix)) {
if (array_key_exists($file_type_current, $mime_postfix2type)) {
$file_mime_current = $mime_postfix2type[$file_type_current];
} else {
$file_mime_current = 'application/octet-stream';
}
}
//存储文件meta信息
$file_meta_data[$index] = array('name' => strip_tags(trim($_FILES[$attach_field]['name'][$index])), 'size' => $file_size_current, 'type' => $file_type_current, 'mime' => $file_mime_current, 'tmpfile' => $_FILES[$attach_field]['tmp_name'][$index]);
// 设置上传总数量
$file_count_total += 1;
// 设置上传总大小
$file_size_total += $file_size_current;
} else {
throw new MyRuntimeException(Kohana::lang('o_product.pic_upload_failed'), 400);
}
}
if ($attach_setup['fileCountLimit'] > 0 && $file_count_total > $attach_setup['fileCountLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_count_limit') . $attach_setup['fileCountLimit'], 400);
}
if ($attach_setup['fileSizeTotalLimit'] > 0 && $file_size_total > $attach_setup['fileSizeTotalLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_total_limit') . $attach_setup['fileSizeTotalLimit'] . Kohana::lang('o_product.size') . $file_size_total, 400);
}
/*
// 当前时间戳
$timestamp_current = time();
//预备一些数据
$src_ip_address = $this->input->ip_address();
$attach_meta = array(
'siteId'=>$site_id,
'siteDomain'=>$site_domain,
);
// 调用附件服务
//$attachmentService = AttachmentService::get_instance();
require_once(Kohana::find_file('vendor', 'phprpc/phprpc_client',TRUE));
!isset($attachmentService) && $attachmentService = new PHPRPC_Client(Kohana::config('phprpc.remote.Attachment.host'));
!isset($phprpcApiKey) && $phprpcApiKey = Kohana::config('phprpc.remote.Attachment.apiKey');
*/
$route_prefix = Kohana::config('attach.routePrefix');
$route_mask_view = Kohana::config('attach.routeMaskViewProduct');
//.........这里部分代码省略.........
示例2: uploadForm
/**
* 上传处理
*/
public function uploadForm()
{
$returnStruct = array('status' => 0, 'code' => 501, 'msg' => _('Not Implemented'), 'content' => array());
try {
// 是否调用本地服务
$useLocalService = TRUE;
//$useLocalService = FALSE;
//* 初始化返回数据 */
$returnStatus = 1;
$returnCode = 200;
$returnMessage = '';
$returnData = array();
//* 收集请求数据 ==根据业务逻辑定制== */
$requestData = $this->input->post();
//* 实现功能后屏蔽此异常抛出 */
//throw new MyRuntimeException(_('Not Implemented'),501);
//* 权限验证,数据验证,逻辑验证 ==根据业务逻辑定制== */
//if(util::isAccess(array(Logon::$MGR_ROLE_LABEL_SYS_ADMIN,), array(Logon::$USER_ROLE_LABEL_DENIED,Logon::$USER_ROLE_LABEL_GUEST), $this->getUserRoleLabel())==FALSE){
// throw new MyRuntimeException(_('Access Denied'),403);
//}
if (util::isAccess('*', array(Logon::$USER_ROLE_LABEL_DENIED), $this->getUserRoleLabel()) == FALSE) {
throw new MyRuntimeException(_('Access Denied'), 403);
}
//* 权限验证 ==根据业务逻辑定制== */
//* 数据验证 ==根据业务逻辑定制== */
//* 逻辑验证 ==根据业务逻辑定制== */
// 调用底层服务
!isset($servRouteInstance) && ($servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance()));
// 执行业务逻辑
//:: 多附件上传
// 上传的表单域名字
$attachField = 'myattach';
// 附件应用类型
$attachAppType = 'appAttach';
// 如果有上传请求
if (page::issetFile($attachField)) {
$returnData['attach'] = array();
//读取当前应用配置
$attachSetup = Lemon::config('attach.' . $attachAppType);
$mimeType2Postfix = Lemon::config('mimemap.type2postfix');
$mimePostfix2Type = Lemon::config('mimemap.postfix2type');
// 表单文件上传控件总数量
$fileUploadCount = page::getFileCount($attachField);
// 初始化一些数据
// 本次文件上传总数量
$fileCountTotal = 0;
// 本次文件上传总大小
$fileSizeTotal = 0;
// 上传文件meta信息
$fileMetaData = array();
// 遍历所有的上传域 //验证上传/采集上传信息
for ($index = 0; $index < $fileUploadCount; $index++) {
// 如果上传标志成功
if ((int) $_FILES[$attachField]['error'][$index] === UPLOAD_ERR_OK) {
if (!is_uploaded_file($_FILES[$attachField]['tmp_name'][$index])) {
throw new MyRuntimeException(_('File not uploaded,index:') . $index, 400);
}
$fileSizeCurrent = filesize($_FILES[$attachField]['tmp_name'][$index]);
if ($attachSetup['fileSizePreLimit'] > 0 && $fileSizeCurrent > $attachSetup['fileSizePreLimit']) {
throw new MyRuntimeException(_('File Size PreLimit exceed,Limit:') . $attachSetup['fileSizePreLimit'] . ' index:' . $index . ' size:' . $fileSizeCurrent, 400);
}
$fileTypeCurrent = FALSE;
$fileTypeCurrent === FALSE && page::getImageType($_FILES[$attachField]['tmp_name'][$index]);
// 尝试通过图片类型判断
$fileTypeCurrent === FALSE && ($fileTypeCurrent = page::getFileType($attachField, $index));
// 尝试通过Mime类型判断
$fileTypeCurrent === FALSE && ($fileTypeCurrent = page::getPostfix($attachField, $index));
// 尝试通过后缀截取
if (!empty($attachSetup['allowTypes']) && !in_array($fileTypeCurrent, $attachSetup['allowTypes'])) {
throw new MyRuntimeException(_('File Type invalid,index:') . $index, 400);
}
// 当前文件mime类型
$fileMimeCurrent = isset($_FILES[$attachField]['type'][$index]) ? $_FILES[$attachField]['type'][$index] : '';
// 检测规整mime类型
if (!array_key_exists($fileMimeCurrent, $mimeType2Postfix)) {
if (array_key_exists($fileTypeCurrent, $mimePostfix2Type)) {
$fileMimeCurrent = $mimePostfix2Type[$fileTypeCurrent];
} else {
$fileMimeCurrent = 'application/octet-stream';
}
}
//存储文件meta信息
$fileMetaData[$index] = array('name' => strip_tags($_FILES[$attachField]['name'][$index]), 'size' => $fileSizeCurrent, 'type' => $fileTypeCurrent, 'mime' => $fileMimeCurrent);
// 设置上传总数量
$fileCountTotal += 1;
// 设置上传总大小
$fileSizeTotal += $fileSizeCurrent;
}
}
if ($attachSetup['fileCountLimit'] > 0 && $fileCountTotal > $attachSetup['fileCountLimit']) {
throw new MyRuntimeException(_('File Count Limit exceed,Limit:') . $attachSetup['fileCountLimit'], 400);
}
if ($attachSetup['fileSizeTotalLimit'] > 0 && $fileSizeTotal > $attachSetup['fileSizeTotalLimit']) {
throw new MyRuntimeException(_('File Size Total Limit exceed,Limit:') . $attachSetup['fileSizeTotalLimit'] . ' size:' . $fileSizeTotal, 400);
}
// 执行上传
// 调用附件服务
//.........这里部分代码省略.........
示例3: upload
public function upload()
{
role::check('product_category');
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array();
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->post();
// 上传的表单域名字
$attach_field = 'category_img';
// 附件应用类型
$attach_app_type = 'productPicAttach';
// 如果有上传请求
if (!page::issetFile($attach_field)) {
throw new MyRuntimeException('请选择所要上传的图片', 400);
}
//读取当前应用配置
$attach_setup = Kohana::config('attach.' . $attach_app_type);
$mime_type2postfix = Kohana::config('mimemap.type2postfix');
$mime_postfix2type = Kohana::config('mimemap.postfix2type');
// 表单文件上传控件总数量
$file_upload_count = page::getFileCount($attach_field);
// 初始化一些数据
// 本次文件上传总数量
$file_count_total = 0;
// 本次文件上传总大小
$file_size_total = 0;
// 上传文件meta信息
$file_meta_data = array();
// 遍历所有的上传域 //验证上传/采集上传信息
for ($index = 0; $index < $file_upload_count; $index++) {
// 如果上传标志成功
if ((int) $_FILES[$attach_field]['error'][$index] === UPLOAD_ERR_OK) {
if (!is_uploaded_file($_FILES[$attach_field]['tmp_name'][$index])) {
throw new MyRuntimeException(Kohana::lang('o_product.file_not_uploaded') . $index, 400);
}
$file_size_current = filesize($_FILES[$attach_field]['tmp_name'][$index]);
if ($attach_setup['fileSizePreLimit'] > 0 && $file_size_current > $attach_setup['fileSizePreLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_prelimit') . $attach_setup['fileSizePreLimit'] . Kohana::lang('o_product.index') . $index . Kohana::lang('o_product.size') . $file_size_current, 400);
}
$file_type_current = FALSE;
$file_type_current === FALSE && page::getImageType($_FILES[$attach_field]['tmp_name'][$index]);
// 尝试通过图片类型判断
$file_type_current === FALSE && ($file_type_current = page::getFileType($attach_field, $index));
// 尝试通过Mime类型判断
$file_type_current === FALSE && ($file_type_current = page::getPostfix($attach_field, $index));
// 尝试通过后缀截取
if (!empty($attachSetup['allowTypes']) && !in_array($file_type_current, $attach_setup['allowTypes'])) {
throw new MyRuntimeException(Kohana::lang('o_product.file_type_invalid') . $index, 400);
}
// 当前文件mime类型
$file_mime_current = isset($_FILES[$attach_field]['type'][$index]) ? $_FILES[$attach_field]['type'][$index] : '';
// 检测规整mime类型
if (!array_key_exists($file_mime_current, $mime_type2postfix)) {
if (array_key_exists($file_type_current, $mime_postfix2type)) {
$file_mime_current = $mime_postfix2type[$file_type_current];
} else {
$file_mime_current = 'application/octet-stream';
}
}
//存储文件meta信息
$file_meta_data[$index] = array('name' => strip_tags(trim($_FILES[$attach_field]['name'][$index])), 'size' => $file_size_current, 'type' => $file_type_current, 'mime' => $file_mime_current, 'tmpfile' => $_FILES[$attach_field]['tmp_name'][$index]);
// 设置上传总数量
$file_count_total += 1;
// 设置上传总大小
$file_size_total += $file_size_current;
}
}
if ($attach_setup['fileCountLimit'] > 0 && $file_count_total > $attach_setup['fileCountLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_count_limit') . $attach_setup['fileCountLimit'], 400);
}
if ($attach_setup['fileSizeTotalLimit'] > 0 && $file_size_total > $attach_setup['fileSizeTotalLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_total_limit') . $attach_setup['fileSizeTotalLimit'] . Kohana::lang('o_product.size') . $file_size_total, 400);
}
// 当前时间戳
//$timestamp_current = time();
//预备一些数据
//$src_ip_address = $this->input->ip_address();
//$attach_meta = array ();
// 调用附件服务
//$attachmentService = AttachmentService::get_instance();
//require_once (Kohana::find_file('vendor', 'phprpc/phprpc_client', TRUE));
//!isset($attachmentService) && $attachmentService = new PHPRPC_Client(Kohana::config('phprpc.remote.Attachment.host'));
//!isset($phprpcApiKey) && $phprpcApiKey = Kohana::config('phprpc.remote.Attachment.apiKey');
/*$attachment_data_original = array (
// 'site_id'=>$site_id,
'filePostfix' => $file_meta['type'],
'fileMimeType' => $file_meta['mime'],
'fileSize' => $file_meta['size'],
'fileName' => $file_meta['name'],
'srcIp' => $src_ip_address,
'attachMeta' => json_encode($attach_meta),
'createTimestamp' => $timestamp_current,
'modifyTimestamp' => $timestamp_current
);
// 调用后端添加附件信息,并调用存储服务存储文件
$args_org = array (
$attachment_data_original
);
//.........这里部分代码省略.........
示例4: upload
public function upload()
{
role::check('product_attribute');
try {
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
//* 初始化返回数据 */
$return_data = array();
//* 收集请求数据 ==根据业务逻辑定制== */
$return_data = $request_data = $this->input->post();
// 上传的表单域名字
$attach_field = 'attribute_img';
// 附件应用类型
$attach_app_type = 'productPicAttach';
// 如果无上传请求
if (!page::issetFile($attach_field)) {
throw new MyRuntimeException('请选择需要上传的图片', 400);
}
$title = isset($request_data['attribute_img_title']) && is_array($request_data['attribute_img_title']) && !empty($request_data['attribute_img_title']) ? $request_data['attribute_img_title'] : array();
//读取当前应用配置
$attach_setup = Kohana::config('attach.' . $attach_app_type);
$mime_type2postfix = Kohana::config('mimemap.type2postfix');
$mime_postfix2type = Kohana::config('mimemap.postfix2type');
// 表单文件上传控件总数量
$file_upload_count = page::getFileCount($attach_field);
// 初始化一些数据
// 本次文件上传总数量
$file_count_total = 0;
// 本次文件上传总大小
$file_size_total = 0;
// 上传文件meta信息
$file_meta_data = array();
// 遍历所有的上传域 //验证上传/采集上传信息
for ($index = 0; $index < $file_upload_count; $index++) {
// 如果上传标志成功
if ((int) $_FILES[$attach_field]['error'][$index] === UPLOAD_ERR_OK) {
if (!is_uploaded_file($_FILES[$attach_field]['tmp_name'][$index])) {
throw new MyRuntimeException(Kohana::lang('o_product.file_not_uploaded') . $index, 400);
}
$file_size_current = filesize($_FILES[$attach_field]['tmp_name'][$index]);
if ($attach_setup['fileSizePreLimit'] > 0 && $file_size_current > $attach_setup['fileSizePreLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_prelimit') . $attach_setup['fileSizePreLimit'] . Kohana::lang('o_product.index') . $index . Kohana::lang('o_product.size') . $file_size_current, 400);
}
$file_type_current = FALSE;
$file_type_current === FALSE && page::getImageType($_FILES[$attach_field]['tmp_name'][$index]);
// 尝试通过图片类型判断
$file_type_current === FALSE && ($file_type_current = page::getFileType($attach_field, $index));
// 尝试通过Mime类型判断
$file_type_current === FALSE && ($file_type_current = page::getPostfix($attach_field, $index));
// 尝试通过后缀截取
if (isset($attach_setup['allowTypes']) && !in_array($file_type_current, $attach_setup['allowTypes'])) {
throw new MyRuntimeException(Kohana::lang('o_product.file_type_invalid') . $_FILES[$attach_field]['name'][$index], 400);
}
// 当前文件mime类型
$file_mime_current = isset($_FILES[$attach_field]['type'][$index]) ? $_FILES[$attach_field]['type'][$index] : '';
// 检测规整mime类型
if (!array_key_exists($file_mime_current, $mime_type2postfix)) {
if (array_key_exists($file_type_current, $mime_postfix2type)) {
$file_mime_current = $mime_postfix2type[$file_type_current];
} else {
$file_mime_current = 'application/octet-stream';
}
}
//存储文件meta信息
$file_meta_data[$index] = array('name' => strip_tags(trim($_FILES[$attach_field]['name'][$index])), 'size' => $file_size_current, 'type' => $file_type_current, 'mime' => $file_mime_current, 'tmbfile' => $_FILES[$attach_field]['tmp_name'][$index]);
// 设置上传总数量
$file_count_total += 1;
// 设置上传总大小
$file_size_total += $file_size_current;
}
}
if ($attach_setup['fileCountLimit'] > 0 && $file_count_total > $attach_setup['fileCountLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_count_limit') . $attach_setup['fileCountLimit'], 400);
}
if ($attach_setup['fileSizeTotalLimit'] > 0 && $file_size_total > $attach_setup['fileSizeTotalLimit']) {
throw new MyRuntimeException(Kohana::lang('o_product.file_size_total_limit') . $attach_setup['fileSizeTotalLimit'] . Kohana::lang('o_product.size') . $file_size_total, 400);
}
// 当前时间戳
//$timestamp_current = time();
//预备一些数据
//$src_ip_address = $this->input->ip_address();
//$attach_meta = array ();
//require_once (Kohana::find_file('vendor', 'phprpc/phprpc_client', TRUE));
//!isset($attachmentService) && $attachmentService = new PHPRPC_Client(Kohana::config('phprpc.remote.Attachment.host'));
//!isset($phprpcApiKey) && $phprpcApiKey = Kohana::config('phprpc.remote.Attachment.apiKey');
// 调用附件存储服务
for ($index = 0; $index < $file_count_total; $index++) {
$img_id = AttService::get_instance()->save_default_img($file_meta_data[$index]['tmbfile']);
if (!$img_id) {
throw new MyRuntimeException(Kohana::lang('o_product.phprpc_pic_save_failed'), 400);
}
$attribute_image = array('attach_id' => $img_id, 'title' => isset($title[$index]) ? strip_tags(trim($title[$index])) : '');
$return_data['picurl'] = $attribute_image['picurl'] = AttService::get_instance()->get_img_url($img_id);
$return_data['meta'] = implode('|', $attribute_image);
// 清理临时文件
@unlink($file_meta_data[$index]['tmbfile']);
}
//echo "<pre>";print_r($file_meta_data);print_r($return_data);die();
//* 补充&修改返回结构体 */
$return_struct['status'] = 1;
$return_struct['code'] = 200;
//.........这里部分代码省略.........