0

写真とユーザータグを含むxmlファイルがあります。これで、ローカルPCから画像を参照してWebアプリケーションのimgフォルダーにアップロードするWebサイトができました。画像を正常にアップロードした後、Webサイトを更新してWebサイトに表示する必要があります。しかし、問題は、新しいブラウズ画像の 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 に答える