У меня проблемы с обработкой загруженного файла после того, как он был загружен с помощью ftp.
Файл, загружаемый пользователем, содержит xml. Я должен сохранить этот файл на диск, но я не могу записать этот файл непосредственно на диск, поэтому я использую ftp для его сохранения. После сохранения его необходимо обработать, чтобы сохранить его содержимое в базе данных. Сбой XmlReader с ошибкой «Корневой элемент не обнаружен». После некоторой отладки я пришел к выводу, что файл пуст.
Я попытался скопировать файл (где xsdUpload - это файл, загруженный пользователем):
FileUpload test = new FileUpload();
test = xsdUpload;
Но я не совсем уверен, копирует ли это файл в память.
Функция загрузки ftp выглядит следующим образом:
public string uploadXsd(string fileName, FileUpload xsd)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url + '/' + fileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
StreamReader sourceStream = new StreamReader(xsd.FileContent);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
return url + '/' + fileName;
}
Эта функция работает нормально. Я вижу файл в каталоге, где он должен быть.
Для обработки файла я использую:
XmlReader reader = XmlReader.Create(xsdUploaded.FileContent);
while (reader.Read())
{
if (reader.Name != "")
{
У кого-нибудь есть решение?