У меня есть несколько отдельных полей в моей базе данных, в которых хранится имя файла & путь к различным типам файлов (коды, руководства, изображения, видео) - например. ImageName, ImagePath, VideoName, VideoPath и т. Д.Загрузка нескольких файлов с использованием Gridview
Я решил связать имена файлов в одном столбце. Вот как я показываю их в своей сетке.
Когда я нажимаю ссылку для загрузки, есть исключение. Исключение типа 'System.IO.DirectoryNotFoundException' произошло в mscorlib.dll, но не было обработано в коде пользователя. Дополнительная информация: Не удалось найти часть пути
Это являются мои коды, когда пользователь нажимает на ссылку Скачать:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "download")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
string fName = row.Cells[1].Text;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + fName);
//Retrieve the file
Response.TransmitFile(Server.MapPath("SFiles/Submissions/" + Session["userid"]
+ "/" + fName));
Response.End();
}
}
Я считаю, это исключение из-за того, что я связать несколько полей данных в одном столбце и, следовательно, существует более одного пути к файлу. Я все еще не уверен, как это решить.
Да, там есть риск для безопасности. Вы хотите передать идентификатор записи, а затем посмотреть на файлы для отправки. –