本文整理汇总了PHP中Cake\Filesystem\File::ext方法的典型用法代码示例。如果您正苦于以下问题:PHP File::ext方法的具体用法?PHP File::ext怎么用?PHP File::ext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cake\Filesystem\File
的用法示例。
在下文中一共展示了File::ext方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _upload
protected function _upload($fileName, $filePath)
{
$data = [];
$basePath = $this->basePath();
$pathinfo = pathinfo($fileName);
$fileName = $pathinfo['basename'];
$fullPath = $basePath . DS . $fileName;
$folder = new Folder($basePath, true, 0777);
$cpt = 1;
while (file_exists($fullPath)) {
$fileName = $pathinfo['filename'] . '_' . $cpt . '.' . $pathinfo['extension'];
$fullPath = $basePath . DS . $fileName;
$cpt++;
}
if (move_uploaded_file($filePath, $fullPath)) {
$file = new File($fullPath);
$data = ['path' => $this->basePath(true) . DS . $file->name, 'extension' => $file->ext()];
}
return $data;
}
示例2: file
/**
* Setup for display or download the given file.
*
* If $_SERVER['HTTP_RANGE'] is set a slice of the file will be
* returned instead of the entire file.
*
* ### Options keys
*
* - name: Alternate download name
* - download: If `true` sets download header and forces file to be downloaded rather than displayed in browser
*
* @param string $path Path to file. If the path is not an absolute path that resolves
* to a file, `APP` will be prepended to the path.
* @param array $options Options See above.
* @return void
* @throws \Cake\Network\Exception\NotFoundException
*/
public function file($path, array $options = [])
{
$options += ['name' => null, 'download' => null];
if (strpos($path, '../') !== false || strpos($path, '..\\') !== false) {
throw new NotFoundException('The requested file contains `..` and will not be read.');
}
if (!is_file($path)) {
$path = APP . $path;
}
$file = new File($path);
if (!$file->exists() || !$file->readable()) {
if (Configure::read('debug')) {
throw new NotFoundException(sprintf('The requested file %s was not found or not readable', $path));
}
throw new NotFoundException(__d('cake', 'The requested file was not found'));
}
$extension = strtolower($file->ext());
$download = $options['download'];
if ((!$extension || $this->type($extension) === false) && $download === null) {
$download = true;
}
$fileSize = $file->size();
if ($download) {
$agent = env('HTTP_USER_AGENT');
if (preg_match('%Opera(/| )([0-9].[0-9]{1,2})%', $agent)) {
$contentType = 'application/octet-stream';
} elseif (preg_match('/MSIE ([0-9].[0-9]{1,2})/', $agent)) {
$contentType = 'application/force-download';
}
if (!empty($contentType)) {
$this->type($contentType);
}
if ($options['name'] === null) {
$name = $file->name;
} else {
$name = $options['name'];
}
$this->download($name);
$this->header('Content-Transfer-Encoding', 'binary');
}
$this->header('Accept-Ranges', 'bytes');
$httpRange = env('HTTP_RANGE');
if (isset($httpRange)) {
$this->_fileRange($file, $httpRange);
} else {
$this->header('Content-Length', $fileSize);
}
$this->_clearBuffer();
$this->_file = $file;
}
示例3: getType
/**
* Return the type from a File object
*
* @param File $file The file from which you get the type
* @return string
*/
protected function getType($file)
{
$extension = $file->ext();
if (isset($this->typeMap[$extension])) {
return $this->typeMap[$extension];
}
return $file->mime() ?: 'application/octet-stream';
}
示例4: cleanGeneratedCss
/**
* Clean the generated CSS files
*
* @return array
*/
public function cleanGeneratedCss()
{
$this->_removeCacheKey('sass_compiled');
// Cleaned files that we will return
$cleanedFiles = array();
foreach ($this->_sassFolders as $key => $sassFolder) {
foreach ($sassFolder->find() as $file) {
$file = new File($file);
if (($file->ext() == 'sass' || $file->ext() == 'scss') && substr($file->name, 0, 2) !== '._') {
$sassFile = $sassFolder->path . DS . $file->name;
$cssFile = $this->_cssFolders[$key]->path . DS . str_replace(array('.sass', '.scss'), '.css', $file->name);
if (file_exists($cssFile)) {
unlink($cssFile);
$cleanedFiles[] = $cssFile;
}
}
}
}
// Remove all cache files at once
if (is_dir($this->_cacheFolder)) {
@closedir($this->_cacheFolder);
$folder = new Folder($this->_cacheFolder);
$folder->delete();
unset($folder);
$cleanedFiles[] = $this->_cacheFolder . DS . '*';
}
mkdir($this->_cacheFolder);
return $cleanedFiles;
}
示例5: copy
/**
* Copy Objednavku
* @param $id
*/
public function copy($id)
{
$row = $this->Orders->findById($id)->contain(["Accessories", "Images", "Files", "Statuses", "Operations"])->first();
if (!$row) {
throw new InternalErrorException("Chyba pri nacitani objednavky", 500);
}
try {
$data = $row->toArray();
// Copy All Images
if ($data['images']) {
foreach ($data['images'] as $key => $image) {
$file_name = new File($image['name']);
$new_file = md5($file_name->name() . time()) . "." . $file_name->ext();
if (copy('img/images/' . $file_name->name, 'img/images/' . $new_file)) {
$data['images'][$key]['name'] = $new_file;
}
}
}
// Copy all Files
if ($data['files']) {
foreach ($data['files'] as $key => $file) {
$file_name = new File($file['name']);
$origin_file = preg_replace("/-copy-\\d{2}\\.\\d{2}\\.\\d{2}.\\d{2}.\\d{2}/", "", $file_name->name());
$new_file = $origin_file . "-copy-" . date("d.m.y-H-i") . "." . $file_name->ext();
if (copy('files/' . $file_name->name, 'files/' . $new_file)) {
$data['files'][$key]['name'] = $new_file;
}
}
}
$order = $this->Orders->newEntity($data);
$order->user_id = $this->getUserId();
if (!$this->Orders->save($order)) {
$message = ['message' => "error saving data", "data" => $order->errors()];
throw new InternalErrorException(json_encode($message));
}
} catch (Exception $e) {
throw new InternalErrorException($e->getMessage());
}
$this->set('row', $order);
$this->set('_serialize', ['row']);
}