FileTransfer没有使用参数发送

时间:2015-09-24 01:08:35

标签: php cordova laravel hybrid-mobile-app appgyver

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

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

(ON IOS)就回调而言,没有任何事情发生,我不知道服务器是否正在接收任何内容。

我正在使用Laravel 4.2和Dingo API,Intervention Image和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').....时,没有名为file的输入,因此只返回任何内容。

非常感谢任何帮助。

0 个答案:

没有答案