是否可以通过来自 $_FILES 的 Angular 9 中的 http 请求访问上传的文件?

我正在尝试通过 angular 9 中的 http 请求将文件上传到 php 服务器,但服务器无法在 $_FILES 中接收上传的文件。我写的代码有点像:


HTML:


<input type="file"  (change)="detectFiles($event)" name="testFile" >

PHP:


<?php

    header("Access-Control-Allow-Origin: *"); 

    header('Access-Control-Allow-Credentials: true');

    header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE");

    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

    echo json_encode($_FILES['testFile']['name']);

?>

打字稿:


detectFiles(event) {

   const file = event.target.files[0];

   this.httpClient.post<any>('http://localhost/test/uploadFile.php', file )

     .subscribe( (response) => { console.log('uploading is done: ' + response); },

                 (error) => { console.log('ERR during the uploading: ' + error); }  

   );

}

当我上传文件时,我收到以下消息: 上传期间出错:[object Object]。有没有可能从服务器端的 $_FILES 到达上传的文件?提前致谢。


UYOU
浏览 96回答 1
1回答

慕仙森

将您的文件附加到Formdata并发送detectFiles(event) {&nbsp; &nbsp;var formData = new FormData();&nbsp; &nbsp;formData.append("file", event.target.files[0]);&nbsp;&nbsp;&nbsp; &nbsp;this.httpClient.post<any>('http://localhost/test/uploadFile.php', formData)&nbsp; &nbsp; &nbsp;.subscribe( (response) => { console.log('uploading is done: ' + response); },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(error) => { console.log('ERR during the uploading: ' + error); }&nbsp;&nbsp;&nbsp; &nbsp;);}
打开App,查看更多内容
随时随地看视频慕课网APP