将图像文件发送到服务器的最佳方法是:作为base64还是图像文件?

时间:2017-03-07 14:42:15

标签: php angularjs image yii2

我在[{1}}上有REST的应用; 我在后端不好。 我很有意思将图片上传到服务器的最佳方式是什么。 我使用AngularJS/PHP(Yii)指令并以Angular Material格式获取图片。

  • 我应该将图片发布为base64吗?
  • 或者转换它的格式更好?
  • 或者可能(我不认为)直接从base64 html上传 使用form
  • 后端

3 个答案:

答案 0 :(得分:2)

我认为你试图从restangular上传图像文件,

请尝试以下代码:

function upload($scope.image) {
var formData = new FormData();
formData.append($scope.image);
Restangular.one('/* your url*/').withHttpConfig({transformRequest:angular.identity})
                .customPOST(formData, '', undefined, {'Content-Type': undefined})  }

通过设置内容类型未定义浏览器将自动检测文件类型

将处理您的UI方面。我对yii框架的了解不多,但在下面你可以使用以下类型获取图像文件:

java:@ResponseBy:multipart / form-data

php:$ _file

我认为使用表单数据上传文件会更好。

答案 1 :(得分:1)

如果您计划在网站或移动应用程序上显示这些上传的图像,则可以使用ImageKit.io。 Easy API可上传,您可以获得用于显示该图像的URL。它将负责优化,并提供基于URL的参数,用于调整大小,裁剪等。

答案 2 :(得分:-1)

如果您正在使用该文件的base64数据网址表示,那么您可以将其转换为文件Blob,为其添加名称并将Blob作为数据文件上传。