首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dynamics AX FTP

Dynamics AX FTP
EN

Stack Overflow用户
提问于 2013-04-24 23:34:55
回答 1查看 2K关注 0票数 2

我在ftp上发送csv文件有问题,我使用AxaptaPedia上的以下代码:

代码语言:javascript
复制
object ftpo;
object ftpResponse;
System.Net.FtpWebRequest request;
System.IO.StreamReader reader;
System.IO.Stream requestStream;
System.Byte[] bytes;
System.Net.NetworkCredential credential;
System.String xmlContent;
System.Text.Encoding utf8;

System.Net.FtpWebResponse response;
;
reader = new System.IO.StreamReader(strfmt("%1%2","\\\\Server\\directory\\","Export.csv"));
utf8 = System.Text.Encoding::get_UTF8();
bytes = utf8.GetBytes( reader.ReadToEnd() );
reader.Close();

ftpo = System.Net.WebRequest::Create(strfmt("%1%2","ftp://IP_Address/directory/","Export.csv"));
request = ftpo;

credential = new System.Net.NetworkCredential("user","password");
request.set_Credentials(credential);
request.set_ContentLength(bytes.get_Length());
request.set_Method("STOR");

requestStream = request.GetRequestStream();
requestStream.Write(bytes,0,bytes.get_Length());
requestStream.Close();

ftpResponse = request.GetResponse();
response = ftpResponse;
info(response.get_StatusDescription());

没有编译错误,没有执行错误,但是文件没有上传到我的FTP上,我认为问题出在路径文件编码上,我尝试了其他解决方案,但没有结果。我想在FTP上批量处理发送文件,它是使用wininet类工作的,但是wininet类不能在服务器端运行,所以我必须使用.net框架。欢迎任何想法或解决方案

感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2013-05-17 22:18:55

我在将文件保存到任何网络目录时都遇到过这个问题,而不仅仅是FTP。对我来说起作用的是为服务器和文件名创建单独的变量,并使用连接而不是字符串格式(StrFmt)。由于某些原因,字符串格式化只是静默地不起作用,而连接却起作用:

代码语言:javascript
复制
str  server = "\\\\Server\\directory\\";
str  fileName = "Export.csv";
Net.WebRequest::Create(server + fileName);

同样,最佳实践不是硬编码这两个值中的任何一个。您应该创建一个参数表来存储这些值,并调用该表来查找这些值并将它们分配给您的变量,或者使用一个对话框在运行时从用户那里获取输入。这避免了将来任何人在FTP服务器更改时必须更改代码,也避免了文件名更改的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16196195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档