选择下拉列表后上传文件

时间:2014-04-21 14:10:01

标签: c# asp.net c#-4.0

我有一个下拉列表&文件uploader.Here我需要,当选择下拉列表&之后需要加载文件uploader。在我的编码中总是显示没有文件。 在这里,我需要使用文件上传器将SelectedValue传递给数据库。

我的代码

 protected void drpuser_SelectedIndexChanged(object sender, EventArgs e)
{
    Guid SelectedUserId =Guid.Parse(drpuser.SelectedValue);
    FileUploader();
}

FileUploader

 public void FileUploader()
{

   // var user = Membership.GetUser();
    if (Roles.IsUserInRole("Administrator"))
    {

        Guid SelectedUserId = Guid.Parse(drpuser.SelectedValue); //<-- value correct

        foreach (string s in Request.Files)
        {
            HttpPostedFile file = Request.Files[s];
            int fileSizeInBytes = file.ContentLength;
            string fileName = file.FileName;
            string fileExtension = "";

            if (!string.IsNullOrEmpty(fileName))
                fileExtension = Path.GetExtension(fileName);
            Guid UserGUID = (Guid)Membership.GetUser().ProviderUserKey;

            string UserFolderPath = "~/UploadedFiles/" + UserGUID;
            System.IO.Directory.CreateDirectory(Server.MapPath(UserFolderPath));

            string savedFileName = Path.Combine(Server.MapPath(UserFolderPath), fileName);
            string FullPath = UserFolderPath + "/" + fileName;
            file.SaveAs(savedFileName);

            DataAccess da = new DataAccess();

            da.AddAdminFiles(UserGUID, FullPath, DateTime.Now, true, SelectedUserId);
        }
    }
else
{

}

1 个答案:

答案 0 :(得分:0)

我认为该文件只会在实际提交时发布。我不确定AutoPostBack会不会自动提交文件..可能是HTTP开销太多了。

如果可以,请添加“提交”按钮,让用户从下拉列表中选择一个项目并提供文件。然后,当用户提交时,查找HTTP文件,它应该在请求对象中。