ftp로 업로드 한 파일을 업로드 한 후 처리하는 데 문제가 있습니다.ftp로 업로드 한 후 FileUpload 파일이 지워짐
사용자가 업로드 한 파일에 xml이 포함되어 있습니다. 이 파일을 디스크에 저장해야하지만이 파일을 디스크에 직접 쓸 수 없기 때문에 ftp를 사용하여 저장합니다. 저장된 후에는 내용을 데이터베이스에 저장하기 위해 처리해야합니다. "No root element detected"오류로 인해 XmlReader가 실패합니다. 디버깅이 끝나면 파일이 비어 있다고 결론을 내 렸습니다.
나는 (xsdUpload는 사용자가 업로드 한 파일입니다) 파일을 복사하려고 :FileUpload test = new FileUpload();
test = xsdUpload;
는하지만이 또한 메모리에 파일을 copys 경우 정말 슈어 아니에요.
는 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 != "")
{
사람이 해결책이 있습니까를?
xsdUploaded.FileContent.Lenght를 사용하여 파일의 길이를 확인하고 반환 값은 0이지만 시도해 보겠습니다. – h3rj4n