2012-01-26 15 views
1

アップロードされたファイルをftpでアップロードした後に処理しています。ftpでアップロードした後にFileUploadファイルが消去されました

ユーザーがアップロードしたファイルにはxmlが含まれています。このファイルをディスクに保存する必要がありますが、このファイルをディスクに直接書き込むことができないため、ftpを使用して保存します。保存した後は、内容をデータベースに保存するために処理する必要があります。 XmlReaderがエラー "No root element detected"で失敗します。いくつかのデバッグの後、ファイルが空であるという結論に至りました。

私は(xsdUploadは、ユーザーによってアップロードされたファイルである場合)、ファイルをコピーしよう:

FileUpload test = new FileUpload(); 
test = xsdUpload; 

しかし、これはまた、メモリ内のファイルをcopys場合、私は本当にSHUREありませんよ。以下のように

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 != "") 
     { 

を誰もが解決策を持っていますか?

答えて

0

役に立てば幸い、私はわからない

xsdUploaded.FileContent.Seek(0, SeekOrigin.Begin); 
XmlReader reader = XmlReader.Create(xsdUploaded.FileContent); 

すなわち、含むFileContentプロパティは Streamクラスのインスタンスであり、あなたは第二読会の前に最初にそれを求めるべきであると思われます。

よろしくお願いいたします。

+0

私はxsdUploaded.FileContent.Lenghtでファイルの長さをチェックして戻り値は0ですが、試してみます – h3rj4n

関連する問題