2013-09-10 2 views
0

У меня есть файл xml с фотографией и тегом пользователя. Теперь у меня есть мой сайт с просмотром изображения с локального компьютера и загрузка в папку img веб-приложения, после успешной загрузки изображения он должен быть показан на веб-сайте, обновляя веб-сайт. Но проблема в том, что тэг xml для нового изображения для просмотра не генерируется, поэтому на веб-сайте не отображаются загруженные изображения на веб-сайте.Как обновить элемент xml с помощью C#

Ниже приведен код.

protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     // Before attempting to save the file, verify 
     // that the FileUpload control contains a file. 
     if (FileUpload1.HasFile) 
     { 
      // Call a helper method routine to save the file. 
      SaveFile(FileUpload1.PostedFile); 


      XmlDocument doc = new XmlDocument(); 
      //string path = @"C:\Users\khant\Documents\visual studio 2012\Projects\UploadImageRetrieve\UploadImageRetrieve\photos.xml"; 
      doc.Load("C:\\Users\\khant\\Documents\\visual studio 2012\\Projects\\UploadImageRetrieve\\UploadImageRetrieve\\photos.xml"); 
      string filenm = FileUpload1.FileName; 

      XmlElement user = doc.CreateElement("user"); 
      XmlElement photo = doc.CreateElement("photo"); 
      XmlText phototext = doc.CreateTextNode("img/"+filenm); 
      //doc.SelectSingleNode("/appSettings/add").Attributes["value"].Value = "hello"; 
      //doc.SelectNodes("/appSettings/add").Item(2).Attributes["value"].Value = "hello"; 

      photo.AppendChild(phototext); 
      user.AppendChild(photo); 
      doc.Save("C:\\Users\\khant\\Documents\\visual studio 2012\\Projects\\UploadImageRetrieve\\UploadImageRetrieve\\photos.xml"); 
     } 
     else 
      // Notify the user that a file was not uploaded. 
      UploadStatusLabel.Text = "You did not specify a file to upload."; 

    } 

    void SaveFile(HttpPostedFile file) 
    { 
     // Specify the path to save the uploaded file to. 
     string savePath = "C:\\Users\\khant\\Documents\\visual studio 2012\\Projects\\UploadImageRetrieve\\UploadImageRetrieve\\img\\"; 

     // Get the name of the file to upload. 
     string fileName = FileUpload1.FileName; 

     // Create the path and file name to check for duplicates. 
     string pathToCheck = savePath + fileName; 

     // Create a temporary file name to use for checking duplicates. 
     string tempfileName = ""; 

     // Check to see if a file already exists with the 
     // same name as the file to upload.   
     if (System.IO.File.Exists(pathToCheck)) 
     { 
      int counter = 2; 
      while (System.IO.File.Exists(pathToCheck)) 
      { 
       // if a file with this name already exists, 
       // prefix the filename with a number. 
       tempfileName = counter.ToString() + fileName; 
       pathToCheck = savePath + tempfileName; 
       counter++; 
      } 

      fileName = tempfileName; 

      // Notify the user that the file name was changed. 
      UploadStatusLabel.Text = "A file with the same name already exists." + 
       "<br />Your file was saved as " + fileName; 
     } 
     else 
     { 
      // Notify the user that the file was saved successfully. 
      UploadStatusLabel.Text = "Your file was uploaded successfully."; 
     } 

     // Append the name of the file to upload to the path. 
     savePath += fileName; 

     // Call the SaveAs method to save the uploaded 
     // file to the specified directory. 
     FileUpload1.SaveAs(savePath); 

    } 
} 

Пожалуйста, дайте мне знать, где я ошибаюсь.

Спасибо.

ответ

1

Вам нужно добавить элемент пользователя к вашему XML-документа перед сохранением его

photo.AppendChild(phototext); 
user.AppendChild(photo); 
doc.DocumentElement.AppendChild(user); // this line is required 
doc.Save("C:\\Users\\khant\\Documents\\visual studio 2012\\Projects\\UploadImageRetrieve\\UploadImageRetrieve\\photos.xml"); 
+0

Спасибо Damith У меня есть добавить строку, но он показывает мне ошибку, что «Этот документ уже имеет узел А„DocumentElement“.... мой код XML-файл, как показано ниже IMG/test.jpg IMG/diers.jpg IMG/testpng.png Pratik

+0

Это работает отлично ... спасибо ... – Pratik

+0

Но теперь проблема является изображение, которое загрузки по нажатию кнопки есть магазин в IMG папке веб-приложения, но он не отображается внутри папки img в визуальной студии, фактически это сохраняется в папке img ... я могу видеть в C: \\ Users \\ khant \\ Documents \\ visual studio 2012 \\ Projects \\ UploadImageRetrieve \\ UploadImageRetrieve \\ img \\ ... я пытаюсь обновить веб-сайт, но загруженное изображение не отображается .... если снова запустить веб-сайт, тогда на веб-сайте показывается только загружаемое изображение ... так что мне нужно добавить какие-либо обратный код? Спасибо – Pratik

Смежные вопросы