0
난 SQL 데이터베이스에서 XML 파일 생성이 코드를 가지고 :이 파일은 ftp를하는지역 이름과 같은 FTP에 파일 이름을 생성
int counter;
int counter2;
private void GenerovaniVse()
{
SqlConnection con = new SqlConnection("Data Source=****");
string strSQL = "select w.KOD_....";
SqlDataAdapter dt = new SqlDataAdapter(strSQL, con);
DataSet ds = new DataSet("ITEMS");
dt.Fill(ds, "ITEM");
FileStream strFileName = File.Create(@"C:\\Users\\L\\Desktop\\" + (counter++) + ".xml");
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.Unicode;
using (XmlWriter xmlWriter = XmlWriter.Create(strFileName, settings))
{
ds.WriteXml(xmlWriter);
xmlWriter.Close();
}
}
을 업로드에서이 코드 :
private void Upload()
{
FileInfo f = new FileInfo("C:\\Users\\L\\Desktop\\" + (counter2) + ".xml");
long original_vel = f.Length;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(*****);
request.Method = WebRequestMethods.Ftp.GetFileSize;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("***", "***");
StreamReader sourceStream = new StreamReader(??????);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
long ftp_vel = request.ContentLength; //velikost souboru na ftp
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
counter2++;
response.Close();
}
문제 에 있었다 : strmfile.Close(); 하지만 xml을 ftp로 복사하면 ftp의 파일 크기가 원래의 xml보다 작아집니다. 원본 xml에는 유니 코드가 있고 파일에는 파일이 없습니다.
예, 맞습니다! :)하지만 지금 xml을 ftp로 복사하면 ftp의 파일 크기가 원래의 xml보다 작아집니다. 원본 xml에는 유니 코드가 있고 ftp 파일에는 코드가 없습니다 .../ – Kate
내 생각 엔 파일이 바이너리가 아닌 텍스트로 보내지는 경우 UseBinary' 속성을 설정하여 강제로 시도하십시오 - http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.usebinary.aspx –