我的第一个决定是是否将图像存储在数据库或文件系统中,经过一些研究,我选择了文件系统。
随着图像的增加,我需要通过获取更多 Web 服务器来水平扩展它,因此我需要将图像的网络/互联网位置存储在某处,以便我可以访问它可能位于的任何 Web 服务器。
我理论上有我需要的东西,但我不知道如何获取文件并将其保存在远程服务器上。具体来说,最好的方法是什么?UNC 路径是一种选择吗?
为了清楚起见,我已经获得了图像服务器端,只需将其发送/保存到我选择的任何 Web 服务器即可。
我的第一个决定是是否将图像存储在数据库或文件系统中,经过一些研究,我选择了文件系统。
随着图像的增加,我需要通过获取更多 Web 服务器来水平扩展它,因此我需要将图像的网络/互联网位置存储在某处,以便我可以访问它可能位于的任何 Web 服务器。
我理论上有我需要的东西,但我不知道如何获取文件并将其保存在远程服务器上。具体来说,最好的方法是什么?UNC 路径是一种选择吗?
为了清楚起见,我已经获得了图像服务器端,只需将其发送/保存到我选择的任何 Web 服务器即可。
在本地,您可以只使用 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/主机名和文件的最终公共路径。