Member 13505603 Ответов: 1

Как я могу решить свою ошибку не удалось найти часть пути C#


Я сохраняю свои файлы в папке в моей веб-форме project /Upload/Secret/ и сохраняю их правильно. и я сохраняю имя файла в базе данных SQL server. Я пытаюсь просмотреть файлы, которые являются pdf, и я создал новый элемент в свой project .dbml, и я перетаскиваю свою таблицу на этот элемент. Теперь, когда я нажимаю кнопку link для просмотра моего файла, появляется эта ошибка : не удалось найти часть пути.

Я получил этот код с youtube https://www.youtube.com/watch?v=h7sswv6LyIw

protected void linkfilebtn_Click1(object sender, EventArgs e)
        {
            int Rowindex = ((GridViewRow)((sender as Control)).NamingContainer).RowIndex;
            string filelocation = DGDEPT.Rows[Rowindex].Cells[3].Text;
            string filepath = Server.MapPath("~/Upload/Secret/" + filelocation);

            WebClient user = new WebClient();
            Byte[] filebuffer = user.DownloadData(filepath);

            if (filebuffer != null)
            {
                Response.ContentType = ("application/pdf");
                Response.AddHeader("content-length", filebuffer.Length.ToString());
                Response.BinaryWrite(filebuffer);
            }
        }


Что я уже пробовал:

когда я отлаживаю код, строка filelocation возвращает null.когда я использую физический путь файл открывается и работает но с виртуальным путем показывает ошибку
не удалось найти часть пути

ошибка появляется в этой строке

Byte[] filebuffer = user.DownloadData(filepath);


как решить эту ошибку и просмотреть мой pdf-файл ?

Bryian Tan

Цитата:Когда я отлаживаю код, строка filelocation return null звучит так, как будто вам нужно выяснить, почему filelocation это null и не физическая проблема против абсолютного пути.

1 Ответов

Рейтинг:
0

OriginalGriff

Цитата:
когда я отлаживаю код, строка filelocation возвращает null.

Так что используйте отладчик и узнайте, почему.
Он заполняется из ячейки, так что начинайте оттуда. Посмотрите на строку, посмотрите на ячейку, проверьте значение Rowindex. Это вряд ли будет на самом деле null, поскольку текстовые свойства обычно не возвращают их, они возвращают пустую строку, которая отличается.

Мы не можем сделать ничего из этого для вас, у нас нет доступа к вашему коду, пока он работает, или к вашим данным. И вам нужно и то, и другое, чтобы понять, что происходит.