从 Unity 与 FileZilla 服务器通信
Communicate from Unity to a FileZilla server
我已经从 Unity 创建了一些文件,我想将它们发送到我创建的本地服务器(使用 FileZilla 服务器)。知道如何从我拥有的统一项目与我使用 FileZilla 创建的服务器进行通信吗?我正在尝试执行建议的代码,但出现以下错误:
UriFormatException: Invalid URI: Invalid port number
System.Uri.Parse (UriKind kind, System.String uriString)
System.Uri.ParseUri (UriKind kind)
System.Uri..ctor (System.String uriString, Boolean dontEscape)
System.Uri..ctor (System.String uriString)
recorgingX.UploadFile (System.String filepath)
recorgingX.OnGUI ()
作为 m_FtpHost 我给了
ftp:// + ip + portID
编辑:我更改了斜杠字符,我不再遇到这个问题。现在我的问题是,当我调用 UploadFile (outName);
时,它不会将其上传到服务器。我如何检查发生了什么?建议的代码在 c# 项目中运行良好,但是当导入到 UNity 项目中时,它不会执行任何操作。在 filezilla 服务器中,我收到以下内容:
10/2015 17:18:52 PM - (not logged in) (127.0.0.1)> USER userID
(000025)11/10/2015 17:18:52 PM - (not logged in) (127.0.0.1)> 331 Password required for chrathan
(000025)11/10/2015 17:18:58 PM - (not logged in) (127.0.0.1)> PASS ***********
(000025)11/10/2015 17:18:58 PM - (not logged in) (127.0.0.1)> 530 Login or password incorrect!
您可以使用 System.Net.WebClient
class 将文件上传到 FTP 服务器。
这是一个关于如何做到这一点的理论示例。
using System;
using System.Net;
public string m_FtpHost = "ftp://myftpserver.com";
public string m_FtpUsername = "FTP username";
public string m_FtpPassword = "FTP password";
public void UploadFile(string filepath)
{
// Get an instance of WebClient
WebClient client = new System.Net.WebClient();
// parse the ftp host and file into a uri path for the upload
Uri uri = new Uri(m_FtpHost + new FileInfo(filepath).Name);
// set the username and password for the FTP server
client.Credentials = new System.Net.NetworkCredential(m_FtpUsername, m_FtpPassword);
// upload the file asynchronously, non-blocking.
client.UploadFileAsync(uri, "STOR", filepath);
}
可在 MSDN https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx
上找到 WebClient
和其他所需 classes 的文档
我已经从 Unity 创建了一些文件,我想将它们发送到我创建的本地服务器(使用 FileZilla 服务器)。知道如何从我拥有的统一项目与我使用 FileZilla 创建的服务器进行通信吗?我正在尝试执行建议的代码,但出现以下错误:
UriFormatException: Invalid URI: Invalid port number System.Uri.Parse (UriKind kind, System.String uriString) System.Uri.ParseUri (UriKind kind) System.Uri..ctor (System.String uriString, Boolean dontEscape) System.Uri..ctor (System.String uriString) recorgingX.UploadFile (System.String filepath) recorgingX.OnGUI ()
作为 m_FtpHost 我给了
ftp:// + ip + portID
编辑:我更改了斜杠字符,我不再遇到这个问题。现在我的问题是,当我调用 UploadFile (outName);
时,它不会将其上传到服务器。我如何检查发生了什么?建议的代码在 c# 项目中运行良好,但是当导入到 UNity 项目中时,它不会执行任何操作。在 filezilla 服务器中,我收到以下内容:
10/2015 17:18:52 PM - (not logged in) (127.0.0.1)> USER userID
(000025)11/10/2015 17:18:52 PM - (not logged in) (127.0.0.1)> 331 Password required for chrathan
(000025)11/10/2015 17:18:58 PM - (not logged in) (127.0.0.1)> PASS ***********
(000025)11/10/2015 17:18:58 PM - (not logged in) (127.0.0.1)> 530 Login or password incorrect!
您可以使用 System.Net.WebClient
class 将文件上传到 FTP 服务器。
这是一个关于如何做到这一点的理论示例。
using System;
using System.Net;
public string m_FtpHost = "ftp://myftpserver.com";
public string m_FtpUsername = "FTP username";
public string m_FtpPassword = "FTP password";
public void UploadFile(string filepath)
{
// Get an instance of WebClient
WebClient client = new System.Net.WebClient();
// parse the ftp host and file into a uri path for the upload
Uri uri = new Uri(m_FtpHost + new FileInfo(filepath).Name);
// set the username and password for the FTP server
client.Credentials = new System.Net.NetworkCredential(m_FtpUsername, m_FtpPassword);
// upload the file asynchronously, non-blocking.
client.UploadFileAsync(uri, "STOR", filepath);
}
可在 MSDN https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx
上找到WebClient
和其他所需 classes 的文档