- PR -

FTPファイルアップロードについて

1
投稿者投稿内容
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-10-29 11:07
いつもこちらでお世話になっております。

FTPでファイルをアップロードについての質問です。

開発環境C# .net 2.0
サーバLinux

FTPでファイルをアップロードするときに以下のエラーが出ます。

リモートサーバがエラーを返しました:(550)ファイルが使用できません
(例:ファイルが見つからない、ファイルへのアクセスがない)
550 Failed to change directory.

public bool FTPFileUpload()
{
try
{
string uri = "ftp://サーバ名/ディレクトリ1/ディレクトリ2/ファイル名";
string myFile = "E:/uploadfile/ファイル名";

Uri serverUri = new Uri(uri);

if (serverUri.Scheme != Uri.UriSchemeFtp)
{
return false;
}
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Method = WebRequestMethods.Ftp.AppendFile;

StreamReader sourceStream = new StreamReader(myFile);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;

request.Credentials = new NetworkCredential(ユーザID, パスワード);

↓この位置でえらーとなる。
Stream requestStream = request.GetRequestStream();

requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Console.WriteLine("Append status: {0}", response.StatusDescription);

response.Close();
return true;

}
catch (WebException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);

FtpWebResponse res = (FtpWebResponse)e.Response;
Console.WriteLine(res.StatusDescription);

return false;
}
}

ディレクトリは確認しましたので存在します。
ディレクトリの権限も確認しました。

TeraTermからも、コマンドプロンプトからも、FFFTPからも
ディレクトリにアクセスできます。

IEからはアクセスできませんでした。
プログラムを実行した時のエラーと同じでした。

まったく原因がわからないので、どなたかご教授お願いします。
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-10-29 14:17
引用:

string uri = "ftp://サーバ名/%2fディレクトリ1/ディレクトリ2/ファイル名";



としてもだめですか?

[ メッセージ編集済み 編集者: れい 編集日時 2007-10-29 14:18 ]
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2007-10-29 14:27
> IEからはアクセスできませんでした。

WinInetだとIEがオフラインになっているとエラーが出た記憶が。
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-10-29 14:44
れいさん、こあらさん
ご返答ありがとうございます。

>string uri = "ftp://サーバ名/%2fディレクトリ1/ディレクトリ2/ファイル名";

この通りに記述したら、ファイルをアップロードすることができました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)