是否可以使用http
路径保存图像?
在我的情况下,所有图像都存储在与我的网站不同的位置。
我的代码抛出一个异常,表示不支持" URI格式"当我在代码下面运行时
string fileLocation = "http://img.servername.com";
Bitmap bmp = GetImage();
bmp.Save(Path.Combine(fileLocation,"a.jpg"));
答案 0 :(得分:0)
您需要保存到本地目录,而不是文件。
string fileLocation = @"c:\mydirectory";
Bitmap bmp = GetImage();
bmp.Save(Path.Combine(fileLocation,"a.jpg"));
您还需要确保您的Web应用程序具有该位置的写入权限。请注意,上传文件并将其保存到服务器可能会带来严重的安全问题和漏洞,超出了您的问题范围。
答案 1 :(得分:0)
这不是那么简单。
我认为你有两种可能性。
您可以通过ftp
或http
发送。
如果您想通过http
发送,该服务器必须实施一种方法,该方法接受带有POST
参数的byte array
请求。
从您的网络应用程序中,您必须将图片转换为byte array
并使用它来对该特定操作发出POST
请求。
通过ftp
您需要凭据,这是msdn docs的一个小演示:
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
request.Method = WebRequestMethods.Ftp.UploadFile;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader("testfile.txt");
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
http://msdn.microsoft.com/en-us/library/ms229715(v=vs.110).aspx