public function uploadAction()
 {
     $request = $this->get('request');
     $this->uploadFile = $request->files->get('file');
     if (is_null($this->uploadFile)) {
         die('File not found!');
     }
     $data = array('success' => false, 'error' => 'Upload error');
     if ($this->uploadFile->isValid() && $request->get('secure_token') === $this->get('session')->get('secure_token')) {
         $filesConfig = $this->container->getParameter('nfc_upload.types');
         $fileSettings = $filesConfig[$request->get('type', 'default')];
         $sessionAttr = $request->get('field');
         $siteWebDir = $this->container->getParameter('nfc_upload.web_dir');
         $validator = $this->getFileValidator($fileSettings);
         if (!$validator) {
             $data = array('success' => false, 'error' => 'To upload files on a website, you need to have JavaScript enabled in your browser');
             return new JsonResponse($data);
         }
         $errorList = $this->get('validator')->validateValue($this->uploadFile, $validator);
         if (count($errorList) == 0) {
             $uploadDir = $this->get('kernel')->getRootDir() . '/../' . $siteWebDir . $fileSettings['upload_dir'];
             if (!is_dir($uploadDir)) {
                 mkdir($uploadDir, 0777, true);
             }
             $fileName = 'file' . uniqid() . '.' . $this->uploadFile->getClientOriginalExtension();
             $this->uploadFile->move($uploadDir, $fileName);
             $fileObj = new \stdClass();
             $fileObj->path = $uploadDir . '/' . $fileName;
             $fileObj->extension = $this->uploadFile->getClientOriginalExtension();
             $filesInfo = new \SplObjectStorage();
             if ($this->get('session')->has('file_upload_' . $sessionAttr)) {
                 $filesInfo->unserialize($this->get('session')->get('file_upload_' . $sessionAttr));
             }
             $filesInfo->type = $request->get('type', 'default');
             $filesInfo->attach($fileObj);
             $this->get('session')->set('file_upload_' . $sessionAttr, $filesInfo->serialize());
             $data = array('success' => true, 'file' => $fileSettings['upload_dir'] . '/' . $fileName, 'name' => $this->uploadFile->getClientOriginalName());
         } else {
             $data = array('success' => false, 'error' => $errorList[0]->getMessage());
         }
     }
     return new JsonResponse($data);
 }
Exemplo n.º 2
0
// 获得当前节点的值。也必须是调用rewind后,才可以调用getInfo。
$obj->getInfo();
// current()
// 获得当前节点对象
$obj->current();
// getHash()
// 获得参数的hash值
$obj->getHash($a2);
// next()
// 指针移到下一个节点
$obj->next();
// offsetExists
// 判断对象容器中是否存在该对象
$obj->offsetExists($a2);
// offsetSet()
// 给对象容器中的某个对象设置值
$obj->offsetSet($a2, 'BBB');
// offsetGet()
// 获得对象容器中的某个针对象对应的值
$obj->offsetGet($a2);
// offsetUnset()
// 将某节点删除
//$obj->offsetUnset($a1);
// serialize()
// 将对象容器序列化
$serialize_obj = $obj->serialize();
// unserialize()
// 将对象容器反序列化
$obj_2 = new SplObjectStorage();
$obj_2->unserialize($serialize_obj);
var_dump($obj_2);
Exemplo n.º 3
0
<?php

$s = new SplObjectStorage();
$o1 = new StdClass();
$o2 = new StdClass();
$s->attach($o1, "d1");
$s->attach($o2, "d2");
$serialized = $s->serialize();
$s2 = new SplObjectStorage();
$s2->unserialize($serialized);
var_dump($s == $s2);