به نام تنها برنامه نویس هستی
سلام ,
برای این کار شما باید ابتدا عکس را دریافت کره و بعد بر روی سرور انتقال بدید.
برای دریافت می تونید از کد زیر استفاده کنید.
req =(HttpWebRequest) WebRequest.Create(txtFileAddress.Text);
req.Credentials = CredentialCache.DefaultCredentials;
res =(HttpWebResponse)req.GetResponse();
try
{
Int64 len;
stream = res.GetResponseStream();
byte[] buffer = new byte[2048];
len = res.ContentLength;
int byteRead = 0;
strLocal = new FileStream(txtSave.Text.ToString(), FileMode.Append, FileAccess.Write, FileShare.None);
while ((byteRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
strLocal.Write(buffer, 0, byteRead);
this.Invoke(new UpdateProgessCallback(this.UpdateProgress), new object[] { strLocal.Length, len });
}//end ring while
}
finally
{
stream.Close();
strLocal.Close();
t = null;
}
و برای ارسال از کد زیر
FileInfo _FileInfo = new System.IO.FileInfo("c:\\pic.jpg");
FtpWebRequest ftpWebRequest = (System.Net.FtpWebRequest)FtpWebRequest.Create(new Uri(FtpHostAddress + "pic.jpg"));
ftpWebRequest.Credentials = new System.Net.NetworkCredential("username", "password");
ftpWebRequest.KeepAlive = false;
ftpWebRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile;
ftpWebRequest.UseBinary = true;
ftpWebRequest.ContentLength = _FileInfo.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
FileStream _FileStream = _FileInfo.OpenRead();
try
{
Stream _Stream = ftpWebRequest.GetRequestStream();
int contentLen = _FileStream.Read(buff, 0, buffLength);
while (contentLen != 0)
{
_Stream.Write(buff, 0, contentLen);
contentLen = _FileStream.Read(buff, 0, buffLength);
}
_Stream.Close();
_Stream.Dispose();
_FileStream.Close();
_FileStream.Dispose();
label1.Invoke((MethodInvoker)delegate
{
label1.ForeColor = Color.Green;
label1.Text = "uploaded successfully !";
});
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
//label1.ForeColor = Color.Green;
//label1.Text = "Error,Please Try Again !";
}
با کمی تغییرات برای کار خود می تونید اش استفاده کنید.
عکس رو از اینترنت می گیره (با پروتکل http ) و با در هاست ذخیره می کنه(با پروتکل ftp)
در کد بالا قسمت دریافت بجای ذخیره شدن در کامپیوترhard disk می تونید از MemoryStream استفاده کنی.
این جور که من فهمیدم این کدارو باید در پشت سر هم اجرا کنی و نکته اخر هم اینکه می تونی برای جلوگیری از هنگ کردن برنامه از thread یا کنترل backgroundworker استفاده کنی.
یاحق !