1

我正在使用 Appgyver 尝试使用内置的 Cordova FileTransfer 插件将图像上传到我的自定义休息服务器。

(在 ANDROID 上)这几乎是我尝试将图像上传到 REST API 的所有代码。我可以获取图像并显示它,更糟糕的是,它实际上成功并触发了回调(并告诉我正确发送了多少字节),但由于某种原因,服务器没有获取文件的任何参数。它当前返回一个空数组/对象作为它接收的参数列表。

(在 IOS 上)就回调而言,什么都没有发生,我不知道服务器是否正在接收任何东西。

我将 Laravel 4.2 与 Dingo API、干预图像和 JWT-Auth 插件一起使用。

服务器代码

$scope.addPost = function(title, price, description, id, uri) 
{

    var fileURL = uri;
    //$scope.encoded = toInternalURL(uri);

    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
    options.httpMethod = "POST";
    //options.mimeType = "image/png";
    options.chunkedMode = false;
    //options.trustAllHosts = true;

    var myToken = JSON.parse(localStorage.getItem("token"));

    var headers = 
    {
            'Authorization': 'Bearer ' + myToken + '',
      'Content-Type': 'multipart/form-data'
  };

    options.headers = headers;

    var params = 
    {
      item_title: title,
      item_price: price,
      item_description: description,
      category_id: id
  };

    options.params = serialize(params);


    var ft = new FileTransfer();
                // name of api is redacted
    ft.upload(fileURL, encodeURI("name of api"), $scope.success, $scope.fail, options);

  };

  $scope.success = function (r) 
 {
    supersonic.logger.log("Code = " + r.responseCode);
    supersonic.logger.log(r.response);
    //$scope.encoded = r.response;
    supersonic.logger.log("Sent = " + r.bytesSent);
    $scope.encoded = "SUCCEED";
};

$scope.fail = function (error) 
{
        $scope.encoded = error.body.toString();
    //supersonic.logger.log(error.body.toString());
    $scope.encoded = "FAIL";
};

服务器代码

public function store() {
    return Input::all();
}

该函数非常简单,因为当我使用干预语法Image::make('file').....时,没有称为文件的输入,因此什么也不返回。

任何帮助将不胜感激。

4

0 回答 0