vinodh muthusamy Ответов: 1

Как я могу выбрать путь к файлу в опции сохранить как при загрузке XML


Здесь я использовал Asp.net применение. Я создал XML и загрузил его с помощью пользовательского пути, но мне нужно выбрать путь, по которому он должен быть загружен.

Пожалуйста, измените этот код.

private void create()
    {
        
        XmlDocument docConfig = new XmlDocument();
        XmlNode xmlNode = docConfig.CreateNode(XmlNodeType.XmlDeclaration, "", "");
        XmlElement rootElement = docConfig.CreateElement("HEDDERS");
        docConfig.AppendChild(rootElement);
        
        for (int i = 10; i < 20; i++)
        {
            XmlElement hedder = docConfig.CreateElement("HEDDER");
            docConfig.DocumentElement.PrependChild(hedder);
            docConfig.ChildNodes.Item(0).AppendChild(hedder);
            
            XmlElement installationElement =docConfig.CreateElement("ID");
        XmlText installationIdText = docConfig.CreateTextNode(Convert.ToString(i));
            installationElement.AppendChild(installationIdText);
            hedder.PrependChild(installationElement);
            
            XmlElement environmentElement = docConfig.CreateElement("NAME");
            XmlText environText = docConfig.CreateTextNode("ABC"+i);
            environmentElement.AppendChild(environText);
            
            hedder.PrependChild(environmentElement);
         
        }        
 
        
        docConfig.Save("D:\\Sample.xml");// Here i need to choose a path     
    }


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

private void create()
    {
      string downloadFileName = "Template_Xml";
      string currentTime = DateTime.Now.ToString("ddMMyyyyhhmmss");
      fileName = downloadFileName + "_" + currentTime + ".xml";
      System.Web.HttpContext.Current.Response.Clear();
      System.Web.HttpContext.Current.Response.ClearContent();
      System.Web.HttpContext.Current.Response.ClearHeaders();
      System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
                    System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
       System.Web.HttpContext.Current.Response.ContentType = "text/xml";
       System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + fileName);

        XmlDocument docConfig = new XmlDocument();
        XmlNode xmlNode = docConfig.CreateNode(XmlNodeType.XmlDeclaration, "", "");
        XmlElement rootElement = docConfig.CreateElement("HEDDERS");
        docConfig.AppendChild(rootElement);
        
        for (int i = 10; i < 20; i++)
        {
            XmlElement hedder = docConfig.CreateElement("HEDDER");
            docConfig.DocumentElement.PrependChild(hedder);
            docConfig.ChildNodes.Item(0).AppendChild(hedder);
            
            XmlElement installationElement =docConfig.CreateElement("ID");
        XmlText installationIdText = docConfig.CreateTextNode(Convert.ToString(i));
            installationElement.AppendChild(installationIdText);
            hedder.PrependChild(installationElement);
            
            XmlElement environmentElement = docConfig.CreateElement("NAME");
            XmlText environText = docConfig.CreateTextNode("ABC"+i);
            environmentElement.AppendChild(environText);
            
            hedder.PrependChild(environmentElement);
         
        }        
 
        
        docConfig.Save("D:\\Sample.xml");// Here i need to choose a path 

Kornfeld Eliyahu Peter

Какое значение имеет метка 'ASP.NET -?
Это веб-приложение, и вы показываете нам код на стороне сервера?

F-ES Sitecore

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

1 Ответов

Рейтинг:
0

OriginalGriff

Вы не можете этого сделать: пользователь (и его настройки браузера) контролируют то, что происходит с файлом, а вы вообще не контролируете его. Это означает, что вы не можете заставить пользователя открыть его, запустить или даже сохранить - браузер принимает это решение с помощью пользовательского ввода, если он запросил его через конфигурацию браузера.

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

Извините, но вы не можете указать его вообще, если ваше приложение не работает на клиентской машине - а в веб-среде код C# обычно выполняется на сервере, а Javascript-на клиенте.