Как достичь того же, как показано ниже, стандартный PHP, но с использованием Symfony 2эквивалент simplexml_load_file в Symfony 2
$xml = simplexml_load_file($_FILES['updates']['tmp_name']);
Как достичь того же, как показано ниже, стандартный PHP, но с использованием Symfony 2эквивалент simplexml_load_file в Symfony 2
$xml = simplexml_load_file($_FILES['updates']['tmp_name']);
Вы всегда можете использовать стандартный PHP код в Symfony2 проектов, но вы должны попытаться использовать структурные модули. В противном случае вам не нужна фреймворк.
Вы можете получить доступ запросов в контроллер с помощью
$this -> getRequest()
Запрос состоит из параметров запроса (отправляется через POST) и параметры запроса (GET, отправленного). Итак, сначала попробуйте найти запрос getRequest() -> request или getRequest() ->. Я не думаю, что вы найдете там файл tmp, но можете попробовать.
Следующая идея: Symfony поддерживает формы и файл типа формы. Представьте, что вы есть класс контейнера, такие как:
use Symfony\Component\HttpFoundation\File\UploadedFile;
// ...
class Document
{
/**
* @Assert\File(maxSize="6000000")
*/
private $file;
/**
* Sets file.
*
* @param UploadedFile $file
*/
public function setFile(UploadedFile $file = null)
{
$this->file = $file;
}
/**
* Get file.
*
* @return UploadedFile
*/
public function getFile()
{
return $this->file;
}
}
Построить форму для этого контейнера класса и обработать запрос:
/**
* @Template()
*/
public function uploadAction(Request $request)
{
$document = new Document();
$form = $this->createFormBuilder($document)
->add('name')
->add('file')
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
// here you can access the file via $document -> getFile()
// entity manager must only be used if the container class is managed
$em = $this->getDoctrine()->getManager();
$em->persist($document);
$em->flush();
return $this->redirect($this->generateUrl(...));
}
return array('form' => $form->createView());
}
После создания объекта, можно напрямую обращаться к файл.
Используйте его так! Может быть, поставить '\' впереди, например '\ simplexml_load_file()' из-за пространств имен. –