使用angular 4和php脚本上传文件

时间:2018-02-07 16:15:13

标签: javascript php angular file-upload

我想从我的Angular App上传图片。 目前我已经获得了模板(如下所示)

<input
  type="file"
  id="newIcon"
  name="iconeRubric"
  (change)=iconChange($event)
>

我还有一个组件在变更时将文件保存在变量中,在提交时我想调用一个php文件将文件保存在服务器上。我有:

let formData = new FormData();
formData.append("iconeRubric", this.newRubricForm.get("iconeRubric").value);

const headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

this.http.post('./uploadFile.php', formData, {
   headers: headers
}).map(res => res.text())
   .subscribe(data => {
   if(JSON.parse(data).upload){
      this.finishSubmit(); // change route, hide popUp  etc...
      alert("Upload OK");
   } else {
      alert("Upload error");
   }
});

这里我想将formData var传递给php文件。但我怎么能在PHP中获取它? 我尝试$file = $_POST['iconeRubric'];,但$ file始终为null

在另一个项目中,我已经将变量从angular传递给了php,但只有字符串或json是stringify with:

let param = 'param='+encodeURIComponent(JSON.stringify(
      {"email":email,"password":password}));
this.http.post('./logIn.php', param, {
   headers: headers
}).map(res => res.text())
   .subscribe(data => {
   ...code...
});

并且在logIn.php中我可以得到以下值:

<?php
   $json = urldecode($_POST['logUser']);
?>

那么如何在php中获取文件? 感谢您的帮助

0 个答案:

没有答案