Эй, у меня есть URI управления изображениями на моем сайте asp. Я пытаюсь настроить загрузку ftp и сохранить ее в потоке памяти, а затем передать ее в управление изображениями.
Но безуспешно, новый URI не может использовать PhotoPath, и он просто не выглядит правильно. Мой "photoPath" содержит имя пути ftps, пытающееся передать его моему процессу. Полностью потерян. Все, что я хочу сделать, это при выборе моего gridview взять имя пути ftp + имя файла выглядит так: ftp: //192.168.1.2/Jelly.jpg
, что было сделано, и я сохранил его в строке имени PhotoPath. Затем выполните ftp-запрос на загрузку, сохраните его в потоке памяти и запустите в элемент управления изображением. Не должно быть трудно, верно?
Код:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) {
string PhotoPath = "";
GridViewRow row = GridView1.Rows[GridView1.SelectedIndex];
PhotoPath = row.Cells[5].Text;
}
public void ProcessRequest (HttpContext context) {
// error on this line due to photopath
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(PhotoPath));
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("username", "password");
try {
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
byte[] bytes = new byte[2048];
int i = 0;
MemoryStream mStream = new MemoryStream();
do {
i = stream.Read(bytes, 0, bytes.Length);
mStream.Write(bytes, 0, i);
} while (i != 0);
context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.ContentType = "image/jpeg"; // unsure of this line
context.Response.BinaryWrite(mStream.GetBuffer());
}
catch (WebException wex) {
//throw new Exception("Unable to locate or access your file.\\nPlease try a different file.");
}
catch (Exception ex) {
throw new Exception("An error occurred: " + ex);
}
}
public bool IsReusable {
get { return false; }
}
эта строка содержит ошибку: PhotoPath не существует в текущем контексте
public void ProcessRequest (HttpContext context){
// error on this line due to photopath
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(PhotoPath));
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("username", "password");
Как только я сделал этот бит, мне нужно найти способ передать его в управление изображением ???
Первая часть кода принимает значение ячейки в моем gridView (имя пути и имя файла ftp), вторая часть - это мой метод загрузки этого фотопути и сохранения его в потоке памяти, а моя последняя часть, которую я не знаю, как чтобы сделать это, чтобы показать это в моем контроле изображений.