Я пытаюсь отправить изображение из Android-приложения Flutter на ftp-сервер по http-запросу, используя php ftp_put()
, но получаю:
ftp_put(File: '/storage/emulated/0/Android/data/br.com.dannilosn.maisservico/files/Pictures/scaled_f11abeeb-08b2-4ef3-bbaf-978ce01066f83153399647709822912.jpg'): failed to open stream: No such file or directory in /mnt/Backup/Git/mais-servicos-server/servidor/ftp/funcoes/enviar_arquivo.php
Путь:
"/storage/emulated/0/Android/data/br.com.dannilosn.maisservico/files/Pictures/scaled_db8a8040-3c45-453a-946b-701bed9815ec7965385997102163330.jpg".
Код Ftp:
class Ftp{
Ftp(ip){
this._ip = ip;
_url = _HOST + _ip +_PATH;
}
static const String _HOST = "http://";
static const String _PATH = "/servidor/ftp/funcoes/";
String _ip;
String _url;
static const String _ENVIAR_ARQUIVO = "enviar_arquivo.php";
Future<dynamic> enviarArquivo(String origem) async{
var response = await http.get(
_url + _ENVIAR_ARQUIVO +
"?origem=$origem"
);
if(response.statusCode == 200){
var res = response.body;//convert.jsonDecode(response.body);
print("Enviar arquivo: ${res.toString()}");
return res;
}
}
}
enviar_arquivo.php:
<?php
$ftp_host = "*******";
$ftp_user = "*******";
$ftp_pass = "*******";
$ftp_stream = ftp_connect($ftp_host);
if(!ftp_login($ftp_stream, $ftp_user, $ftp_pass)){
echo "Não conseguiu se conectar";
exit();
}
$destino = "/servidor/ftp/arquivos/teste.jpg";
$origem = $_GET["origem"];
ftp_pasv($ftp_stream, true);
$resposta = ftp_put($ftp_stream, $destino, $origem, FTP_BINARY);
if($resposta){
echo "OK";
}else{
echo "Arquivo não enviado";
}
ftp_close($ftp_stream);
?>
Если я ищу с помощью файлового менеджера, есть файл.
Должен ли я сделать что-то другое, чтобы получить файл на Android или что-то в php?