首页 > 解决方案 > 使用 FileUpload 控件在 asp.net c# 中获取文件的完整路径

问题描述

FileUpload在以下场景中使用控件来处理文件,downloaded我的机器中手动有一些文件,现在我需要一个一个地选择文件来处理它们的数据Database并将这些文件映射到另一个位置(服务器)。我有一个执行此功能的方法,它需要该文件的完全限定路径来进一步处理它。我使用fileUpload.PostedFile.FileName 的是只返回文件名,而不是 FQN。

if (fileUploadList.HasFile)
            {
                string source = ddActiveList.SelectedItem.Text;                
                string url = fileUploadList.PostedFile.FileName;
                string name = "Name";
                string id = "1";
                bool res = SaveFileToLocalMachine(url, name, id, source);
            } 

private bool SaveFileToLocalMachine(string url, string fileName, string sourceId, string source)
        {
            bool flag = false;
            lSource = new Object();
            string savePath = "@\\myPath";
            if (!Directory.Exists(savePath))
            {
                DirectoryInfo di = Directory.CreateDirectory(savePath);
            }
            using (var client = new WebClient())
            {
                try
                {                   
                    string fileExt = System.IO.Path.GetExtension(url);
                    string file = fileName + fileExt;
                    client.DownloadFile(url, savePath + file);
                    lSource.Update();
                    flag = true;

                }
                catch (Exception ex)
                {                    
                    flag = false;
                }
            }
            return flag;
        }

标签: c#

解决方案


网络服务器通常不能(也不应该)访问客户端的文件和文件夹。他甚至不应该获得客户端的文件系统(这是 IE 允许的一段时间)。但是无论如何您都不应该需要它,因为您已经从客户端上传了文件。它在FileUpload.PostedFile.

您想要的方法已经可用,FileUpload.SaveAs

fileUploadList.SaveAs(savePath);

推荐阅读