AngularJS:上传并发布照片作为多部分表单数据并获得响应

tra*_*sis 8 angularjs

我想上传一张图片并将其发布到我的服务器上,该服务器应该将图片进一步发布到某个API并获得响应.

我可以使用类似的东西:

<form ng-submit="updatePhoto(myphoto)"> 
    <p>Choose Photo:</p>
    <input type="file" ng-model="myphoto">
    <input type="submit" value="Send">
</form>
Run Code Online (Sandbox Code Playgroud)

然后在控制器中,该函数将具有以下内容:

$http({
        method: 'POST',
        url: 'myAPIserver.php/',
        data: "myPhoto=" + photo,
        headers: {'Content-Type': 'multipart/form-data'}
});
Run Code Online (Sandbox Code Playgroud)

但这不正确,我不知道如何做到这一点.问题是我首先将这张照片发送到我的PHP代理,然后从那里使用curl来发出直接的API请求.

我希望我很清楚.任何建议表示赞赏,谢谢

tra*_*sis 9

我设法通过我在这里获得的自定义指令来实现这一目标.如果要访问文件,则需要一个用于文件上载的自定义指令(ngModel无法工作,请参阅信息以获取更多信息).

使用第一个链接:

<form ng-submit="updateSth()" name="uploadForm" enctype="multipart/form-data">
    <input name="file" type="file" id="file" file-model="fileToUpload" />
    <input name="somethingINeed" type="submit" value="Upload" />
</form> 
Run Code Online (Sandbox Code Playgroud)

您现在可以使用$ scope.fileToUpload访问上传的文件,这使一切变得更容易.我从第一个链接上给出的服务中提取了该函数,并没有将它用作服务,因为它更适合我这种方式......