protected void File_Upload(object sender, AjaxFileUploadEventArgs e)
{
List<String> pathlist = null;
if (Session["UploadedPath"] != null)
{
pathlist = (List<String>)Session["UploadedPath"];
}
else
{
pathlist = new List<string>();
}
string filename = e.FileName;
string path = "~/Documents/" + filename;
this.AjaxFileUpload1.SaveAs(Server.MapPath(path));
pathlist.Add(path);
Session["UploadedPath"] = pathlist;
}
我收到类似这样的错误
无法将System.String
类型的对象转换为System.Collections.Generic.List1[System.String].
类型
如何将多个上传的文件保存到数据库中
2条答案
按热度按时间kqlmhetl1#
在我看来,您的
UploadedPath
变量是string
,而不是List<string>
,因此无法执行以下类型转换您需要确保在设置
UploadedPath
时,它 * 肯定 * 是List<string>
的示例,而不是string
。w41d8nur2#
是否确定“会话[“上载路径”];'包含列表类型值?。我认为它包含字符串值。
会传回上述例外状况。
请重新检查存储在“UploadedPath”会话中的值,并确保其为列表类型
希望下面的代码能对你有所帮助。但是要确保你在Session[“UploadedPath”]中保存了一些东西;之前,请确保它是List类型。
我不熟悉AjaxFileUpload,如果“e”一次只包含一个文件,下面的方法就可以了。但是如果它包含多个文件,你必须循环遍历它,并将每个文件添加到“pathlist”中,然后将其保存到会话中