0

我有带有照片和用户标签的 xml 文件。现在我有我的网站,从本地电脑浏览图片并上传到 web 应用程序 img 文件夹,成功上传图片后,它应该通过刷新网站显示在网站中。但问题是没有生成新浏览图像的 xml 标签,因此网站不会在网站中显示上传的图像。

下面是后面的代码。

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);

  }
}

请让我知道我错在哪里。

谢谢。

4

1 回答 1

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");
于 2013-09-10T14:59:21.490 回答