class PostFile

POST file upload

Hierarchy

Expanded class hierarchy of PostFile

File

drupal/core/vendor/guzzle/http/Guzzle/Http/Message/PostFile.php, line 11

Namespace

Guzzle\Http\Message
View source
class PostFile implements PostFileInterface {
  protected $fieldName;
  protected $contentType;
  protected $filename;

  /**
   * @param string $fieldName   Name of the field
   * @param string $filename    Path to the file
   * @param string $contentType Content-Type of the upload
   */
  public function __construct($fieldName, $filename, $contentType = null) {
    $this->fieldName = $fieldName;
    $this
      ->setFilename($filename);
    $this->contentType = $contentType ?: $this
      ->guessContentType();
  }

  /**
   * {@inheritdoc}
   */
  public function setFieldName($name) {
    $this->fieldName = $name;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getFieldName() {
    return $this->fieldName;
  }

  /**
   * {@inheritdoc}
   */
  public function setFilename($filename) {

    // Remove leading @ symbol
    if (strpos($filename, '@') === 0) {
      $filename = substr($filename, 1);
    }
    if (!is_readable($filename)) {
      throw new InvalidArgumentException("Unable to open {$filename} for reading");
    }
    $this->filename = $filename;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getFilename() {
    return $this->filename;
  }

  /**
   * {@inheritdoc}
   */
  public function setContentType($type) {
    $this->contentType = $type;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getContentType() {
    return $this->contentType;
  }

  /**
   * {@inheritdoc}
   */
  public function getCurlString() {
    $disposition = ';filename=' . basename($this->filename);
    return $this->contentType ? '@' . $this->filename . ';type=' . $this->contentType . $disposition : '@' . $this->filename . $disposition;
  }

  /**
   * Determine the Content-Type of the file
   */
  protected function guessContentType() {
    return Mimetypes::getInstance()
      ->fromFilename($this->filename) ?: 'application/octet-stream';
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PostFile::$contentType protected property
PostFile::$fieldName protected property
PostFile::$filename protected property
PostFile::getContentType public function Get the Content-Type of the file Overrides PostFileInterface::getContentType
PostFile::getCurlString public function Get a cURL ready string for the upload Overrides PostFileInterface::getCurlString
PostFile::getFieldName public function Get the name of the field Overrides PostFileInterface::getFieldName
PostFile::getFilename public function Get the full path to the file Overrides PostFileInterface::getFilename
PostFile::guessContentType protected function Determine the Content-Type of the file
PostFile::setContentType public function Set the Content-Type of the file Overrides PostFileInterface::setContentType
PostFile::setFieldName public function Set the name of the field Overrides PostFileInterface::setFieldName
PostFile::setFilename public function Set the path to the file Overrides PostFileInterface::setFilename
PostFile::__construct public function