上传路径在json内的文件(FosRestBundle)

上传路径在json内的文件(FosRestBundle),json,symfony,fosrestbundle,Json,Symfony,Fosrestbundle,我正在从事一个项目,在这个项目中,我最喜欢编写一个Rest组件来将用户保存在数据库中。组件还应该将用户的照片保存在服务器上的文件夹中。我将参数作为Json发送到我的RESTAPI 这个我跟踪了一百次。但我还是得到了错误 文件“/home/herval/Desktop/zipf.png”不存在 尝试新建文件(pathOfTheUploadedFile)时。因此,RESTAPI似乎在本地查看文件。 当我尝试提供服务器上的文件时,它会移动该文件,而不是复制它 谁能帮帮我吗 这是我的密码: 控制器: 实

我正在从事一个项目,在这个项目中,我最喜欢编写一个Rest组件来将用户保存在数据库中。组件还应该将用户的照片保存在服务器上的文件夹中。我将参数作为Json发送到我的RESTAPI

这个我跟踪了一百次。但我还是得到了错误

文件“/home/herval/Desktop/zipf.png”不存在

尝试新建
文件(pathOfTheUploadedFile)
时。因此,RESTAPI似乎在本地查看文件。 当我尝试提供服务器上的文件时,它会移动该文件,而不是复制它

谁能帮帮我吗

这是我的密码:

控制器:

实体


}

您可以通过请求访问该文件,并通过以下方式调整数据以适应您的场景:

/**
 * @Rest\Post("")
 */
public function mitgliedAnlegenRestAction(Request $request)
{

    $parameters = $request->request->all();
    $parametersAsArray = json_decode($content, true);

    $filesAsArray = $request->files->all();

    // You could access to a file uploaded in the file attribute as example
    // @var UploadedFile file */
    $file = $filesAsArray['file'];

...

希望这有助于我找到另一个解决方案。我不知道如何同时发送JSON和多部分请求。因此,我分离了用户的保存。第一次:只需使用JSON保存用户的数据。第二次:将文件作为多部分上传。它很好用!!!您好@Herval NGANYA您不知道如何在客户端发送多部分数据?
/**
 * Mitglied
 *
 * @ORM\Table(name="mitglied")
 * @ORM\Entity(repositoryClass="OrchesterRestBundle\Repository\MitgliedRepository")
 */

class Mitglied
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;


/**
 * @var string
 *
 * @ORM\Column(name="username", type="string", length=15)
 * @Assert\Length(min=6, max=15)
 */
private $username;

/**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=100)
 * @Assert\Email
 */
private $email;

/**
 * @var string
 *
 * @ORM\Column(name="nachname", type="string", length=100, nullable=true)
 * @Assert\Length(min=2, max=100)
 */
private $nachname;

/**
 * @var string
 *
 * @ORM\Column(name="vorname", type="string", length=100, nullable=true)
 * @Assert\Length(min=2, max=100)
 */
private $vorname;

/**
 * @var string
 *
 * @ORM\Column(name="pwd", type="string", length=255)
 * @Assert\Length(min=6, max=30)
 */
private $pwd;

/**
 * @var string
 *
 * @ORM\Column(name="photo", type="string", length=255, nullable=true)
 * @Assert\File(mimeTypes={ "image/jpeg", "image/pjpeg", "image/png", "image/gif" })
 */
private $photo;

/**
 * @var \Date
 *
 * @ORM\Column(name="eintrittsdatum", type="date", nullable=true)
 * @Assert\Date()
 */
private $eintrittsdatum;

/**
 * @var \Date
 *
 * @ORM\Column(name="geburtsdatum", type="date", nullable=true)
 * @Assert\Date()
 */
private $geburtsdatum;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="reg_datum", type="datetime")
 */
private $regDatum;

/**
 * @var string
 *
 * @ORM\Column(name="token", type="string", length=255, nullable=true)
 */
private $token;

/**
 * @var int
 *
 * @ORM\Column(name="plz", type="integer", nullable=true)
 */
private $plz;

/**
 * @var string
 *
 * @ORM\Column(name="stadt", type="string", length=100, nullable=true)
 * @Assert\Length(min=2, max=100)
 */
private $stadt;

/**
 * @var string
 *
 * @ORM\Column(name="strasse", type="string", length=100, nullable=true)
 * @Assert\Length(min=3, max=100)
 */
private $strasse;

/**
 * @var string
 *
 * @ORM\Column(name="hausnummer", type="string", length=15, nullable=true)
 * @Assert\Length(min=1, max=15)
 */
private $hausnummer;

/**
 * @ORM\ManyToOne(targetEntity="OrchesterRestBundle\Entity\Mitglied", cascade={"persist", "remove"})
 */
private $MitgliedErsteller;

/**
 * @ORM\ManyToMany(targetEntity="OrchesterRestBundle\Entity\Art", cascade={"persist", "remove"})
 */
private $arts;

/**
 * @ORM\ManyToMany(targetEntity="OrchesterRestBundle\Entity\Instrument", cascade={"persist", "remove"})
 */
private $instrumente;

/**
 * @ORM\OneToMany(targetEntity="OrchesterRestBundle\Entity\MitgliedGruppe",cascade={"persist", "remove"}, mappedBy="mitglied")
 * @ORM\JoinColumn(nullable=true)
 */
private $mitglied_gruppen;

/**
 * Constructor
 */
public function __construct($gruppeRepository = NULL)
{
    $this->arts = new \Doctrine\Common\Collections\ArrayCollection();
    $this->instrumente = new \Doctrine\Common\Collections\ArrayCollection();
    $this->mitglied_gruppen = new \Doctrine\Common\Collections\ArrayCollection();

    if($gruppeRepository != NULL){
        $gruppen = $gruppeRepository->findFromName('ALL');
        if($gruppen != NULL)
            if($gruppen[0] != NULL){
                    $mg = new MitgliedGruppe();
                    $mg->setBeitreten(true);
                    $mg->setGruppe($gruppen[0]);
                    $mg->setDatum(date_create('now'));
                    $mg->setMitglied($this);
                    $this->addMitgliedGruppen($mg);
            }
    }
}

/**
 * Add art
 *
 * @param \OrchesterRestBundle\Entity\Art $art
 *
 * @return Mitglied
 */
public function addArt(\OrchesterRestBundle\Entity\Art $art)
{
    if(!$this->arts->contains($art))
        $this->arts[] = $art;

    return $this;
}

/**
 * Remove art
 *
 * @param \OrchesterRestBundle\Entity\Art $art
 */
public function removeArt(\OrchesterRestBundle\Entity\Art $art)
{
    $this->arts->removeElement($art);
}

/**
 * Get arts
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getArts()
{
    return $this->arts;
}

/**
 * Set arts
 *
 * @param \Doctrine\Common\Collections\Collection $arts
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function setArts($arts)
{
    return $this->arts = $arts;
}

/**
 * Add instrumente
 *
 * @param \OrchesterRestBundle\Entity\Instrument $instrumente
 *
 * @return Mitglied
 */
public function addInstrumente(\OrchesterRestBundle\Entity\Instrument $instrumente)
{
    if(!$this->instrumente->contains($instrumente))
        $this->instrumente[] = $instrumente;

    return $this;
}

/**
 * Remove instrumente
 *
 * @param \OrchesterRestBundle\Entity\Instrument $instrumente
 */
public function removeInstrumente(\OrchesterRestBundle\Entity\Instrument $instrumente)
{
    $this->instrumente->removeElement($instrumente);
}

/**
 * Get instrumente
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getInstrumente()
{
    return $this->instrumente;
}

/**
 * Set instrumente
 *
 * @param \Doctrine\Common\Collections\Collection $instrumente
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function setInstrumente($instrumente)
{
    return $this->instrumente = $instrumente;
}

public function setValueFromJson($json_object){
    $this->setUsername($json_object['username']);
    $this->setEmail($json_object['email']);
    $this->setNachname($json_object['nachname']);
    $this->setVorname($json_object['vorname']);
    $this->setPwd($json_object['pwd']);


    $this->setEintrittsdatum(date_create($json_object['eintrittsdatum']));
    $this->setGeburtsdatum(date_create($json_object['geburtsdatum']));
    $this->setToken($json_object['token']);
    $this->setPlz($json_object['plz']);
    $this->setStadt($json_object['stadt']);
    $this->setStrasse($json_object['strasse']);
    $this->setHausnummer($json_object['hausnummer']);

    if(isset($json_object['id']))
        return $json_object['id'];
    return 0;
}

/**
 * Set mitgliedErsteller
 *
 * @param \OrchesterRestBundle\Entity\Mitglied $mitglied
 *
 * @return Mitglied
 */
public function setValueFromMitglied($mitglied){

    $this->setUsername($mitglied->username);
    $this->setEmail($mitglied->email);
    $this->setNachname($mitglied->nachname);
    $this->setVorname($mitglied->vorname);
    $this->setPwd($mitglied->pwd);
    $this->setPhoto($mitglied->photo);
    $this->setEintrittsdatum($mitglied->eintrittsdatum);
    $this->setGeburtsdatum($mitglied->geburtsdatum);
    $this->setRegDatum($mitglied->regDatum);
    $this->setToken($mitglied->token);
    $this->setPlz($mitglied->plz);
    $this->setStadt($mitglied->stadt);
    $this->setStrasse($mitglied->strasse);
    $this->setHausnummer($mitglied->hausnummer);

    $this->setArts($mitglied->getArts());
    $this->setInstrumente($mitglied->getInstrumente());
}

public function hasArt($g_art){
    $artArray = $this->arts->toArray();
    foreach($artArray as $art)
        if($art->getName() == $g_art)
            return true;
    return false;
}

/**
 * Get id
 *
 * @return integer
 */
public function getId()
{
    return $this->id;
}

/**
 * Set username
 *
 * @param string $username
 *
 * @return Mitglied
 */
public function setUsername($username)
{
    $this->username = $username;

    return $this;
}

/**
 * Get username
 *
 * @return string
 */
public function getUsername()
{
    return $this->username;
}

/**
 * Set email
 *
 * @param string $email
 *
 * @return Mitglied
 */
public function setEmail($email)
{
    $this->email = $email;

    return $this;
}

/**
 * Get email
 *
 * @return string
 */
public function getEmail()
{
    return $this->email;
}

/**
 * Set nachname
 *
 * @param string $nachname
 *
 * @return Mitglied
 */
public function setNachname($nachname)
{
    $this->nachname = $nachname;

    return $this;
}

/**
 * Get nachname
 *
 * @return string
 */
public function getNachname()
{
    return $this->nachname;
}

/**
 * Set vorname
 *
 * @param string $vorname
 *
 * @return Mitglied
 */
public function setVorname($vorname)
{
    $this->vorname = $vorname;

    return $this;
}

/**
 * Get vorname
 *
 * @return string
 */
public function getVorname()
{
    return $this->vorname;
}

/**
 * Set pwd
 *
 * @param string $pwd
 *
 * @return Mitglied
 */
public function setPwd($pwd)
{
    $this->pwd = $pwd;

    return $this;
}

/**
 * Get pwd
 *
 * @return string
 */
public function getPwd()
{
    return $this->pwd;
}

/**
 * Set photo
 *
 * @param string $photo
 *
 * @return Mitglied
 */
public function setPhoto($photo)
{
    $this->photo = $photo;

    return $this;
}

/**
 * Get photo
 *
 * @return string
 */
public function getPhoto()
{
    return $this->photo;
}

/**
 * Set eintrittsdatum
 *
 * @param \DateTime $eintrittsdatum
 *
 * @return Mitglied
 */
public function setEintrittsdatum($eintrittsdatum)
{
    $this->eintrittsdatum = $eintrittsdatum;

    return $this;
}

/**
 * Get eintrittsdatum
 *
 * @return \DateTime
 */
public function getEintrittsdatum()
{
    return $this->eintrittsdatum;
}

/**
 * Set geburtsdatum
 *
 * @param \DateTime $geburtsdatum
 *
 * @return Mitglied
 */
public function setGeburtsdatum($geburtsdatum)
{
    $this->geburtsdatum = $geburtsdatum;

    return $this;
}

/**
 * Get geburtsdatum
 *
 * @return \DateTime
 */
public function getGeburtsdatum()
{
    return $this->geburtsdatum;
}

/**
 * Set regDatum
 *
 * @param \DateTime $regDatum
 *
 * @return Mitglied
 */
public function setRegDatum($regDatum)
{
    $this->regDatum = $regDatum;

    return $this;
}

/**
 * Get regDatum
 *
 * @return \DateTime
 */
public function getRegDatum()
{
    return $this->regDatum;
}

/**
 * Set token
 *
 * @param string $token
 *
 * @return Mitglied
 */
public function setToken($token)
{
    $this->token = $token;

    return $this;
}

/**
 * Get token
 *
 * @return string
 */
public function getToken()
{
    return $this->token;
}

/**
 * Set plz
 *
 * @param integer $plz
 *
 * @return Mitglied
 */
public function setPlz($plz)
{
    $this->plz = $plz;

    return $this;
}

/**
 * Get plz
 *
 * @return integer
 */
public function getPlz()
{
    return $this->plz;
}

/**
 * Set stadt
 *
 * @param string $stadt
 *
 * @return Mitglied
 */
public function setStadt($stadt)
{
    $this->stadt = $stadt;

    return $this;
}

/**
 * Get stadt
 *
 * @return string
 */
public function getStadt()
{
    return $this->stadt;
}

/**
 * Set strasse
 *
 * @param string $strasse
 *
 * @return Mitglied
 */
public function setStrasse($strasse)
{
    $this->strasse = $strasse;

    return $this;
}

/**
 * Get strasse
 *
 * @return string
 */
public function getStrasse()
{
    return $this->strasse;
}

/**
 * Set hausnummer
 *
 * @param string $hausnummer
 *
 * @return Mitglied
 */
public function setHausnummer($hausnummer)
{
    $this->hausnummer = $hausnummer;

    return $this;
}

/**
 * Get hausnummer
 *
 * @return string
 */
public function getHausnummer()
{
    return $this->hausnummer;
}

/**
 * Set mitgliedErsteller
 *
 * @param \OrchesterRestBundle\Entity\Mitglied $mitgliedErsteller
 *
 * @return Mitglied
 */
public function setMitgliedErsteller(\OrchesterRestBundle\Entity\Mitglied $mitgliedErsteller = null)
{
    $this->MitgliedErsteller = $mitgliedErsteller;

    return $this;
}

/**
 * Get mitgliedErsteller
 *
 * @return \OrchesterRestBundle\Entity\Mitglied
 */
public function getMitgliedErsteller()
{
    return $this->MitgliedErsteller;
}

/**
 * Add mitgliedGruppen
 *
 * @param \OrchesterRestBundle\Entity\MitgliedGruppe $mitgliedGruppen
 *
 * @return Mitglied
 */
public function addMitgliedGruppen(\OrchesterRestBundle\Entity\MitgliedGruppe $mitgliedGruppen)
{
    $this->mitglied_gruppen[] = $mitgliedGruppen;

    return $this;
}

/**
 * Remove mitgliedGruppen
 *
 * @param \OrchesterRestBundle\Entity\MitgliedGruppe $mitgliedGruppen
 */
public function removeMitgliedGruppen(\OrchesterRestBundle\Entity\MitgliedGruppe $mitgliedGruppen)
{
    $this->mitglied_gruppen->removeElement($mitgliedGruppen);
}

/**
 * Get mitgliedGruppen
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getMitgliedGruppen()
{
    return $this->mitglied_gruppen;
}
/**
 * @Rest\Post("")
 */
public function mitgliedAnlegenRestAction(Request $request)
{

    $parameters = $request->request->all();
    $parametersAsArray = json_decode($content, true);

    $filesAsArray = $request->files->all();

    // You could access to a file uploaded in the file attribute as example
    // @var UploadedFile file */
    $file = $filesAsArray['file'];

...