0

我的第一个决定是是否将图像存储在数据库或文件系统中,经过一些研究,我选择了文件系统。

随着图像的增加,我需要通过获取更多 Web 服务器来水平扩展它,因此我需要将图像的网络/互联网位置存储在某处,以便我可以访问它可能位于的任何 Web 服务器。

我理论上有我需要的东西,但我不知道如何获取文件并将其保存在远程服务器上。具体来说,最好的方法是什么?UNC 路径是一种选择吗?

为了清楚起见,我已经获得了图像服务器端,只需将其发送/保存到我选择的任何 Web 服务器即可。

4

1 回答 1

3

在本地,您可以只使用 File.Copy()。否则,您必须使用 FTP 上传它们:

public void UpLoadFile(String serverFilePath, string localFilePath)
{
    String serverFullPath = "ftp://" + s_ServerHost + serverFilePath;
    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(serverFullPath);
    ftp.Credentials = new NetworkCredential("user", "password");
    ftp.KeepAlive = true;
    ftp.Method = WebRequestMethods.Ftp.UploadFile;
    ftp.UseBinary = true;

    using (FileStream fs = File.OpenRead(localFilePath))
    {
        Byte[] buffer = new Byte[fs.Length];
        fs.Read(buffer, 0, buffer.Length);
    }

    using (Stream ftpStream = ftp.GetRequestStream())
        ftpStream.Write(buffer, 0, buffer.Length);
}

为了检索它,您必须知道服务器的 IP/主机名和文件的最终公共路径。

于 2013-01-20T15:09:17.067 回答