forked from friendica/friendica-addons
122 lines
2.5 KiB
PHP
122 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* SimpleFile
|
|
*
|
|
* The 'SimpleFile' class is used to easily add read-only immutable files to
|
|
* the directory structure. One usecase would be to add a 'readme.txt' to a
|
|
* root of a webserver with some standard content.
|
|
*
|
|
* @package Sabre
|
|
* @subpackage DAV
|
|
* @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved.
|
|
* @author Evert Pot (http://www.rooftopsolutions.nl/)
|
|
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
|
|
*/
|
|
class Sabre_DAV_SimpleFile extends Sabre_DAV_File {
|
|
|
|
/**
|
|
* File contents
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $contents = array();
|
|
|
|
/**
|
|
* Name of this resource
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $name;
|
|
|
|
/**
|
|
* A mimetype, such as 'text/plain' or 'text/html'
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $mimeType;
|
|
|
|
/**
|
|
* Creates this node
|
|
*
|
|
* The name of the node must be passed, as well as the contents of the
|
|
* file.
|
|
*
|
|
* @param string $name
|
|
* @param string $contents
|
|
* @param string|null $mimeType
|
|
*/
|
|
public function __construct($name, $contents, $mimeType = null) {
|
|
|
|
$this->name = $name;
|
|
$this->contents = $contents;
|
|
$this->mimeType = $mimeType;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the node name for this file.
|
|
*
|
|
* This name is used to construct the url.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName() {
|
|
|
|
return $this->name;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the data
|
|
*
|
|
* This method may either return a string or a readable stream resource
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function get() {
|
|
|
|
return $this->contents;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the size of the file, in bytes.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getSize() {
|
|
|
|
return strlen($this->contents);
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the ETag for a file
|
|
*
|
|
* An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change.
|
|
* The ETag is an arbitrary string, but MUST be surrounded by double-quotes.
|
|
*
|
|
* Return null if the ETag can not effectively be determined
|
|
* @return string
|
|
*/
|
|
public function getETag() {
|
|
|
|
return '"' . md5($this->contents) . '"';
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the mime-type for a file
|
|
*
|
|
* If null is returned, we'll assume application/octet-stream
|
|
* @return string
|
|
*/
|
|
public function getContentType() {
|
|
|
|
return $this->mimeType;
|
|
|
|
}
|
|
|
|
}
|