Nitin H. Ответов: 1

Каждый раз берите изображения с клиентского ПК для загрузки на сервер


Я прочитал локальный путь из textbox ex. D:\images и загружается на сервер с помощью server.mappath его работа отлично работает на localhost

но в то время как код публикуется на сервере исходный путь D:\images считается с пути сервера, а не с клиентской машины .

и я хочу прочитать этот путь с клиентской машины, чтобы загрузить все изображения из папки на сервер.

Что я уже пробовал:

string folderPath = System.Configuration.ConfigurationManager.AppSettings["UploadPath"].ToString();

  DirectoryInfo d = new DirectoryInfo(@MD.Path);//here I get D:\images 
   FileInfo[] Files = ((d.GetFiles("*.jpg", SearchOption.AllDirectories)).Union(d.GetFiles("*.png", SearchOption.AllDirectories))).ToArray(); //here i get all images 
            string str = "";
            ImageBL objBL = new ImageBL();
            foreach (FileInfo file in Files)
            {

 var InputFileName = Path.GetFileName(file.Name);
  string path = Server.MapPath("~/" + folderPath + "/");
  var RPaths = Server.MapPath("~/" + folderPath + "//" + "Images" + "//" + MD.YrID + "//" + MD.RPath);
 var ServerSavePath = Server.MapPath("~/" + folderPath + "//" + "Images" + "//" + MD.YrID + "//" + MD.RPath + "//" + InputFileName);


<pre>  if (!System.IO.Directory.Exists(RPaths))
                    {
                        System.IO.Directory.CreateDirectory(RPaths);
                    }

                    
                    if (System.IO.File.Exists(ServerSavePath))
                    {
                        ServerSavePath.Replace(ServerSavePath, System.DateTime.Now.ToLocalTime() + "" + ServerSavePath);
                    }
                    else
                    {
                        file.CopyTo(ServerSavePath);
                    }
}

1 Ответов

Рейтинг:
10

OriginalGriff

Ты не можешь этого сделать.
Похоже, что он работает в разработке, потому что клиент и сервер - это одна и та же машина, но код C# всегда работает на сервере, а не на клиенте, поэтому все обращения к "пользовательскому жесткому диску" в вашем коде на самом деле являются обращениями к жесткому диску сервера - поскольку это одна и та же физическая машина, похоже, что она работает нормально, но как только вы выпускаете ее в производство, клиент находится за тысячу миль отсюда, а сервер не имеет доступа к его жесткому диску.

Единственный способ загрузить файлы с клиента на сервер - это использовать элемент управления загрузкой какой-либо формы и заставить пользователя точно указать, какие файлы он хочет загрузить вам.


Nitin H.

Большое спасибо!! Я сделал код с контролем загрузки.

OriginalGriff

Пожалуйста!