Я использую Appgyver, чтобы попытаться загрузить изображение на свой пользовательский сервер для отдыха, используя встроенный плагин Cordova FileTransfer.
(ON ANDROID) В основном это весь мой код для попытки загрузить изображение в REST API. Я могу получить изображение и отобразить его И, что еще хуже, он на самом деле успешен и запускает обратный вызов (и сообщает мне, сколько байтов отправлено правильно), но по какой-то причине сервер не получает никаких параметров с файлом. В настоящее время он возвращает пустой массив / объект в качестве списка параметров, которые он получает.
(На 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, и поэтому просто ничего не возвращает.
Любая помощь будет принята с благодарностью.
Задача ещё не решена.
Других решений пока нет …