C#でファイルをサーバに転送する。


ファイルをサーバに転送する場合には、WebClinetを使うと非常に便利です。単純にローカルのコードをサーバに転送するだけならたった3行で完結します!

WebClient wc = new WebClient();
 wc.Credentials = new NetworkCredential(p_user_name, p_pass_word);
 wc.UploadFile(“ftp://hogehoge.com/test.txt”, “test.txt”);


C#でWEBサーバに転送中に出るエラー【リモート サーバーがエラーを返しました: (553) ファイル名が許可されませんでした】


C#でWEBサーバにファイルを転送した時に以下の様なエラーが出てはまってしまいました><。。。

リモート サーバーがエラーを返しました: (553) ファイル名が許可されませんでした

 

英語メッセージ

Can’t connect to FTP: (553) File name not allowed

 

同じC#のコードでAサーバにはは、正常に転送できるのに Bサーバには転送出来ずこの様なエラーが出る場合には、

①⇒②と試してみると良いです。

 

①転送しようとしているディレクトリのアクセス権限を755 にする。

②ftp接続時のパス指定を修正する。

私の環境では 1) でうまく転送出来なかったので 2) にしたところ正常にファイル転送が出来ました。

1 ) ftp://ftp.hogehoge.com/data

2 ) ftp://ftp.hogehoge.com/public_html/data

 

WinSCP等で正常にサーバ転送出来るのに自前コードで転送出来ないというのは考えてみるとおかしな話しです。原因としてはファイル権限だけではなく、パス指定のミスという事もあり得るので注意しましょう。