我可以使用.net ftp成功上传文本文件 但现在想上传图形(.png)图像。 我该如何设置流编码?
我对文本的内容(在Apl脚本中):
sourceStream←'。net'⎕new'System.IO.StreamReader'Localpathfilename 编码←'.NET'⎕NEW'System.Text.ASCIIEncoding'
然后我从传输的二进制文件中丢失了字节。 我也尝试省略编码行。
欢呼,Beau更多信息: 这是用AplX .net编写的Ascii版本的核心 - 它工作正常 - 现在我需要一个BinaryReader版本。 帮助赞赏
ftp←'.net' ⎕call 'System.Net.WebRequest.Create' Remotepathfilename
ftp.Method←'.net' ⎕call 'System.Net.WebRequestMethods+Ftp.UploadFile'
ftp.Credentials←'.net' ⎕new 'System.Net.NetworkCredential' Username Password
sourceStream ← '.net' ⎕new 'System.IO.StreamReader' Localpathfilename
encoding←'.NET' ⎕NEW 'System.Text.ASCIIEncoding'
fileContents ← encoding.GetBytes.⎕REF
sourceStream.ReadToEnd
sourceStream.Close
ftp.ContentLength ← fileContents.Length
:try
stream←ftp.GetRequestStream
:catchall
.....
以下是我现在尝试的内容,基于以下的vb代码:
http://msdn.microsoft.com/en-us/library/system.io.file.openread#Y1035
Dim fs As FileStream
FileStream fs = File.OpenRead(path))
所以我尝试过:
fileStream ← '.net' ⎕new 'System.IO.File'
fileStream.OpenRead Localpathfilename
以下是错误消息:
Constructor on type 'System.IO.File' not found.
DOMAIN ERROR
net_ftp_putfile[72] fileStream←'.net' ⎕new 'System.IO.File'
答案 0 :(得分:1)
二进制文件没有“编码”,除非您想要将数据转换为在有损传输介质(例如7位BBS或MTA,您需要对数据进行Base64编码)的情况下生存。编码用于文本文件。
请勿使用StreamReader
或StreamWriter
来处理二进制数据。这些类名称不好,应该将它们称为TextStreamReader
和TextStreamWriter
,以更好地反映它们的作用。如果您有想要使用的Stream,那么您应该使用BinaryReader
和BinaryWriter
。