0

.net ftp を使用してテキスト ファイルを正常にアップロードできますが、グラフィック (.png) 画像をアップロードしたいと考えています。ストリーム エンコーディングはどのように設定すればよいですか?

私がテキスト用に持っているもの(Aplスクリプト内):

sourceStream ← '.net' ⎕new 'System.IO.StreamReader' Localpathfilename encoding←'.NET' ⎕NEW 'System.Text.ASCIIEncoding'

次に、転送されたバイナリ ファイルからバイトを失います。また、エンコーディング行を省略しようとしました。

乾杯、ボー

詳細情報 : これは、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'
4

1 に答える 1

1

損失の多い転送媒体 (7 ビットの BBS や MTA など、データを Base64 でエンコードする必要がある場合) に耐えられるようにデータを変換する場合を除き、バイナリ ファイルには「エンコード」がありません。エンコーディングはテキストファイル用です。

バイナリ データの操作にはStreamReaderorを使用しないでください。StreamWriterクラスの名前は適切ではありません。クラスの機能をよりよく反映するために、クラスを呼び出す必要がありますTextStreamReaderTextStreamWriter操作したい Stream がある場合は、 and を使用する必要がBinaryReaderありBinaryWriterます。

于 2012-09-07T18:39:32.447 に答える