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].
如何将多个上传的文件保存到数据库
答案 0 :(得分:0)
我认为您的UploadedPath
变量是string
,而不是List<string>
,因此您无法执行以下演员
pathlist = (List<String>)Session["UploadedPath"];
您需要确保在设置UploadedPath
时,肯定是 List<string>
而不是string
的实例。
答案 1 :(得分:0)
你确定'Session [“UploadedPath”];'包含列表类型值?我认为它包含一个字符串值。
pathlist = (List<String>)Session["UploadedPath"];
将返回上述异常。
请重新检查您在“UploadedPath”会话中存储的值,并确保其列表类型
希望以下代码能为您提供帮助。但请确保在Session [“UploadedPath”]中保存了一些内容;之前,请确保它是List类型。
我不熟悉AjaxFileUpload,如果'e'一次只包含一个文件,下面的方法就可以了。但如果它包含多个文件,则必须循环遍历它并将每个文件添加到“路径列表”,然后将其保存到会话
protected void File_Upload(object sender, AjaxFileUploadEventArgs e)
{
List<String> pathlist = new List<String>();
if (Session["UploadedPath"] != null)
{
pathlist = (List<String>)Session["UploadedPath"];
}
string filename = e.FileName;
string path = "~/Documents/" + filename;
this.AjaxFileUpload1.SaveAs(Server.MapPath(path));
pathlist.Add(path);
Session["UploadedPath"] = pathlist;
}