mirror of
https://0xacab.org/radar/radar-wp.git
synced 2025-06-09 13:16:26 +02:00
Initial import.
This commit is contained in:
commit
86383280c9
428 changed files with 68738 additions and 0 deletions
124
vendor/guzzle/http/Guzzle/Http/Message/PostFile.php
vendored
Normal file
124
vendor/guzzle/http/Guzzle/Http/Message/PostFile.php
vendored
Normal file
|
@ -0,0 +1,124 @@
|
|||
<?php
|
||||
|
||||
namespace Guzzle\Http\Message;
|
||||
|
||||
use Guzzle\Common\Version;
|
||||
use Guzzle\Common\Exception\InvalidArgumentException;
|
||||
use 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';
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue