FTP android выгрузка

Программирование на Юнити.

FTP android выгрузка

Сообщение 1100001001 07 апр 2019, 16:53

Вопрос кажется простой :( Как выгрузить файл с андроида на FTP сервер? Может есть какие то ограничения в версии Unity? Есть метод:
Синтаксис:
Используется csharp
public void UploadFile()
    {
        FilePath = Application.persistentDataPath + "/data.txt";

        WebClient client = new System.Net.WebClient();
        Uri uri = new Uri(FTPHost + new FileInfo(FilePath).Name);

        client.UploadProgressChanged += new UploadProgressChangedEventHandler(OnFileUploadProgressChanged);
        client.UploadFileCompleted += new UploadFileCompletedEventHandler(OnFileUploadCompleted);
        client.Credentials = new System.Net.NetworkCredential(FTPUserName, FTPPassword);
        client.UploadFileAsync(uri, "STOR", FilePath);
    }


Код работает на WIndows сборках и Web сборках, но не работает на андроиде...Помогите разобраться в чём причина. Может под андроид нужно как то по другому писать выгрузку на FTP?
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт

Re: FTP android выгрузка

Сообщение 1max1 07 апр 2019, 18:00

Возможно это подойдет:
https://docs.unity3d.com/Manual/UnityWe ... wData.html
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: FTP android выгрузка

Сообщение 1100001001 08 апр 2019, 00:40

Хотелось бы разобраться почему FTP не работает, то что ты предлагаешь я так понимаю на принимающей стороне должен сервер работать который обработает входящий запрос.
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт

Re: FTP android выгрузка

Сообщение 1100001001 08 апр 2019, 13:58

Если кому интересно заработало только так:
Синтаксис:
Используется csharp
IEnumerator FTPUpload2()
    {
        var filename = Application.persistentDataPath + "/data.txt";
        bool isUploading = false;

        ThreadPool.QueueUserWorkItem((o) =>
        {
            FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(FTPHost+ "/data.txt");

            ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
            ftpWebRequest.Credentials = new NetworkCredential(FTPUserName, FTPPassword);
            ftpWebRequest.UsePassive = true;
            ftpWebRequest.UseBinary = true;
            ftpWebRequest.KeepAlive = true;

            StreamReader sourceStream = new StreamReader(filename);
            byte[] fileBytes = File.ReadAllBytes(filename);
            sourceStream.Close();
            ftpWebRequest.ContentLength = fileBytes.Length;

            Stream requestStream = ftpWebRequest.GetRequestStream();
            requestStream.Write(fileBytes, 0, fileBytes.Length);
            requestStream.Close();

            FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
            ftpWebResponse.Close();

            isUploading = true;
        });

        while (!isUploading)
        {
            yield return new WaitForSeconds(0.1f);
        }
    }
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17