我有一个照片上传HTML表单,其中使用getRequest()捕获其值。当我不使用Symfony表单时,如何获取此文件扩展名?这是我捕获表单元素值的行。
$image = $this->getRequest()->files->get("image");
答案 0 :(得分:2)
您可以使用symfony的guessExtension()函数
$image = $this->getRequest()->files->get("image");
// Symfony is guessing extension of file
$extension = $image->guessExtension();
答案 1 :(得分:1)
如果需要了解文件扩展名,可以使用getClientOriginalExtension()来获取文件类型扩展名。 像这样:
$image = $request->files->get( 'image' );
print_r($image->getClientOriginalExtension());
您还可以使用其他功能来获取其他详细信息,例如文件大小,文件类型,文件路径等。
getATime()
getBasename()
getCTime()
getClientMimeType()
getClientOriginalExtension()
getClientOriginalName()
getClientSize()
getError()
getErrorMessage()
getExtension()
getFileInfo()
getFilename()
getGroup()
getInode()
getLinkTarget()
getMTime()
getMaxFilesize()
getMimeType()
getOwner()
getPath()
getPathInfo()
getPathname()
getPerms()
getRealPath()
getSize()
getType()
以此类推。
答案 2 :(得分:0)
$uploadPath = $this->container->getParameter('kernel.root_dir') . '/../web/uploads/';
try {
$uploadfile = $request->files->get('filename');
/* @var $uploadfile \Symfony\Component\HttpFoundation\File\File */
$uploadedFile = $uploadfile->move($uploadPath, $uploadfile->getClientOriginalName());
unset($uploadfile);
} catch (\Exception $e) {
/* if you don't set $avatarFile to a default file here
* you cannot execute the next instruction.
*/
}
$filename = $uploadedFile->getBasename();
$extentison = $uploadedFile->getExtension();
答案 3 :(得分:0)
如果您需要在上传文件之前获取文件扩展名
这是您的实体文件
class Excel_file_details
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="filename", type="string", length=255)
*/
private $filename;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
public function setFilename($filename)
{
$this->filename = $filename;
return $this;
}
public function getFilename()
{
return $this->filename;
}
}
在您的控制器中
$excelobj = new Excel_file_details();
$uploaddir = $this->container->getParameter('kernel.root_dir') . '/../web/uploads/excelfiles/' . $folderName;
$file = $excelobj->getFilename();
$fileName = $excelobj->getFilename()->getClientOriginalName();
$ext = pathinfo($uploaddir . $fileName, PATHINFO_EXTENSION);
$name = substr($fileName, 0, -(strlen($ext) + 1));
$fileName = $name . '@' . date('Y-m-d H-i-s') . '.' . $ext;
答案 4 :(得分:0)
getClientOriginalName()
为我工作以获取原始文件名。 guessEstension()
无效。