EVOLUTION-MANAGER
Edit File: PostFile.php
<?php namespace DuplicatorPro\Guzzle\Http\Message; defined("ABSPATH") or die(""); use DuplicatorPro\Guzzle\Common\Version; use DuplicatorPro\Guzzle\Common\Exception\InvalidArgumentException; use DuplicatorPro\Guzzle\Http\Mimetypes; /** * POST file upload */ class PostFile implements PostFileInterface { protected $fieldName; protected $contentType; protected $filename; protected $postname; /** * @param string $fieldName Name of the field * @param string $filename Local path to the file * @param string $postname Remote post file name * @param string $contentType Content-Type of the upload */ public function __construct($fieldName, $filename, $contentType = null, $postname = null) { $this->fieldName = $fieldName; $this->setFilename($filename); $this->postname = $postname ? $postname : basename($filename); $this->contentType = $contentType ?: $this->guessContentType(); } public function setFieldName($name) { $this->fieldName = $name; return $this; } public function getFieldName() { return $this->fieldName; } 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; } public function setPostname($postname) { $this->postname = $postname; return $this; } public function getFilename() { return $this->filename; } public function getPostname() { return $this->postname; } public function setContentType($type) { $this->contentType = $type; return $this; } public function getContentType() { return $this->contentType; } public function getCurlValue() { // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax // See: https://wiki.php.net/rfc/curl-file-upload if (function_exists('curl_file_create')) { return curl_file_create($this->filename, $this->contentType, $this->postname); } // Use the old style if using an older version of PHP $value = "@{$this->filename};filename=" . $this->postname; if ($this->contentType) { $value .= ';type=' . $this->contentType; } return $value; } /** * @deprecated * @codeCoverageIgnore */ public function getCurlString() { Version::warn(__METHOD__ . ' is deprecated. Use getCurlValue()'); return $this->getCurlValue(); } /** * Determine the Content-Type of the file */ protected function guessContentType() { return Mimetypes::getInstance()->fromFilename($this->filename) ?: 'application/octet-stream'; } }