C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C#でFTP使用のファイル送受信(リモート)


(過去ログ 14 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■4578 / inTopicNo.1)  C#でFTP使用のファイル送受信(リモート)
  
□投稿者/ moe (1回)-(2007/06/19(Tue) 10:31:26)

分類:[C# (Windows)] 

.NET2.0 C#でWindowsアプリケーションの開発をしています。

リモートコンピュータのFTPを使用し、ファイルの送受信を行いたくてソースを書いたのですがエラーが発生します。
リモートコンピュータとの通信はできており、コマンドプロンプトよりファイルの送受信は行えます。

手順は以下の通りです。
@ローカルにファイルを作成し書込み、ファイルサイズを確認。それをリモートコンピュータにアップロードする。
Aリモートのファイルサイズチェックし、ローカルファイルと比較
B成功すればローカルファイルを削除し、リモートファイルをローカルにダウンロードする。
Cサイズ確認後、結果取得

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

//ftpサーバ指定
FTPサーバ名 = "ftp://" + サーバ名 + @"/ftptestfile.txt";
//ファイルをローカルに作成し、書き込み
FTPファイル名 = Application.StartupPath + @"\ftptestfile.txt";
FileStream hStream = File.Create(FTPファイル名);
hStream.Close();

StreamWriter writer = new StreamWriter(FTPファイル名);
writer.WriteLine
("FTPConnectionTest\r\nFTPConnectionTest" +
"\r\nFTPConnectionTest\r\nFTPConnectionTest\r\n");
writer.Close();

//リモートPCのファイル指定
サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/ftproot/ftptestfile.txt";
//ローカルファイルのサイズを取得
ex_file = new FileInfo(FTPファイル名);

//アップロードファイルを指定し、リモートPCにアップロード
string filePath = Application.StartupPath + @"\ftptestfile.txt";
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential(ユーザ名, パスワード);
wc.UploadFile(FTPサーバ名, filePath);

//アップロードしたファイルのサイズを取得
new_file1 = new FileInfo(サーバテストファイル);
new_file2 = new FileInfo(FTPファイル名);

//ローカルとサーバのファイルサイズを比較
//★↓↓ここでエラー発生(new_file1.Lengthの値が取れない)
if(ex_file.Length == new_file1.Length)
{
File.Delete(FTPファイル名);
//サーバのファイルをローカルにダウンロード
wc.DownloadFile(FTPサーバ名, Application.StartupPath + @"\ftptestfile.txt");
    //ダウンロードしたファイルのサイズを取得
new_file2 = new FileInfo(FTPファイル名);
            
    //ファイル削除 
File.Delete(サーバテストファイル);
    File.Delete(FTPファイル名);

    //サーバとローカルのファイルサイズを比較
if (ex_file.Length == new_file2.Length)
    {
//結果表示
ftpresult = "OK\r\n";
}
else
{
//エラー
ftpresult = "NG\r\n";
}
File.Delete(サーバテストファイル);
File.Delete(FTPファイル名);
}
else
{
//エラー
ftpresult = "NG\r\n";
File.Delete(FTPファイル名);
}

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

例外で取得したコードは「リモート サーバーがエラーを返しました: (550) ファイルが使用できません (例: ファイルが見つからない、ファイルへのアクセスがない)」です。
ftprootフォルダを共有にしてみたり、アクセス権を変更したりもしましたができません。
リモートコンピュータの指定が間違っているのでしょうか?
それとも何か他に原因があるのでしょうか?
ここでだいぶ詰まってしまっています。
どなたか助けていただけませんか?
引用返信 編集キー/
■4579 / inTopicNo.2)  Re[1]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ Hongliang (148回)-(2007/06/19(Tue) 10:41:45)
Hongliang さんの Web サイト
System.IO.FileInfo クラスは共有フォルダ相手が限界です。
FTP を使ってサーバに聞きにいく必要があります。
WebClient の場合はどうするか知りませんが、FtpWebRequest なら Method に WebRequestMethods.Ftp.GetFileSize 使えばいいのかな。
引用返信 編集キー/
■4580 / inTopicNo.3)  Re[1]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ mあ (12回)-(2007/06/19(Tue) 10:56:11)
No4578 (moe さん) に返信
> .NET2.0 C#でWindowsアプリケーションの開発をしています。
>

http://members.jcom.home.ne.jp/1213687801/cs/general/ftp3.html
これと自分のが根本的に何がどう違うのか比べてみたら?

http://www.atmarkit.co.jp/fdotnet/dotnettips/459ftpwc/ftpwc.html
こっちに香ばしい記事が・・・

ふむふむ、従来のソケット通信な書き方に比べたら100分の1程度の記述量で
FTP通信が出来ちゃうのか??な。。。

# C#で作ってあるからうちの環境では読めない・・・;;
# .CS はエディタで普通に読めた・・・

>> FTPファイル名 = Application.StartupPath + @"\ftptestfile.txt";
~~~~
\r\n って0x0D,0x0A に解釈されるのですか?
\f は何?フォームフィード?? 前に @ 付けると \? を展開抑制ってルールなのかなぁ・・・


>> ftpresult = "NG\r\n";
これは送らないで自分とこに出すメッセージでは?後ろの \r\n は要らない、というか、\n だけで
いいのでは?


# サンプル EXE が動かないのは、.NETFW 2.0 入ってないから??
# 認証取れてない期限切れVB2005Exp だけじゃダメなのか・・・

引用返信 編集キー/
■4588 / inTopicNo.4)  Re[2]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ ぽぴ王子 (218回)-(2007/06/19(Tue) 15:20:58)
ぽぴ王子 さんの Web サイト
No4580 (mあ さん) に返信

> http://www.atmarkit.co.jp/fdotnet/dotnettips/459ftpwc/ftpwc.html
> こっちに香ばしい記事が・・・

この記事自体は有用なのではないかと思います。別に香ばしくなんかない。
…もしかして「香ばしい」の使い方(スラングとして)間違ってますか?

> \r\n って0x0D,0x0A に解釈されるのですか?

されます。

> \f は何?フォームフィード?? 前に @ 付けると \? を展開抑制ってルールなのかなぁ・・・

そういうルールです。

> >> ftpresult = "NG\r\n";
> これは送らないで自分とこに出すメッセージでは?後ろの \r\n は要らない、というか、\n だけで
> いいのでは?

この辺はこのソースを見ただけではわかりませんね。
ftpresult がどこでどのように使われているのかわからないですから。

# 正直、わからないことに無理して首をつっこむものじゃないと思います。


moe さん的には

> //リモートPCのファイル指定
> サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/ftproot/ftptestfile.txt";

このあたりでサーバのファイル名を指定している…ということなのだと思いますが
これは Hongliang さんが書かれているとおり、System.IO.FileInfo クラスで取れる
範囲を超えています。なので、FTP サーバ相手には FTP プロトコルでファイルサイズ
を教えてもらう必要があります。

英語だけど、この辺とか参考になるかな?
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=95356&SiteID=1
引用返信 編集キー/
■4615 / inTopicNo.5)  Re[3]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ moe (3回)-(2007/06/20(Wed) 17:20:53)
ぽぴ王子さま

返信ありがとうございます。
またフォローもありがとうございました。


> 英語だけど、この辺とか参考になるかな?
> http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=95356&SiteID=1

参考にさせていただいたのですが、試行錯誤した結果まだうまくいっていません。


手順
@ローカルファイル作成
Aサーバファイル作成(これがうまくいきません。。。)
Bローカルファイルからサーバファイルにアップロード
Cローカルファイルを削除し、サーバファイルからローカルにダウンロード

下のソースでは書いてないのですが、手順Aのサーバにファイル作成がうまくいきません。
また下のソースではBとCの手順を逆にしています。
ダウンロードはうまくいくのに、アップロードがうまくいきません。
エラーは「リモート サーバーがエラーを返しました: (550) ファイルが使用できません (例: ファイルが見つからない、ファイルへのアクセスがない)」です。


//ftpサーバ指定
FTPサーバ名 = "ftp://" + サーバ名 + @"/ftptestfile.txt";

//ファイルをローカルに作成し、書き込み
FTPファイル名 = Application.StartupPath + @"\ftptestfile.txt";
FileStream hStream = File.Create(FTPファイル名);
hStream.Close();
StreamWriter writer = new StreamWriter(FTPファイル名);
writer.WriteLine
("FTPConnectionTest\r\nFTPConnectionTest" + "\r\nFTPConnectionTest\r\nFTPConnectionTest\r\n");
writer.Close();

//リモートPCのファイル指定(FTPサーバ配下のファイルを処理)
サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/ftproot/ftptestfile.txt";

//FTPサーバのファイルからローカルにダウンロード
WebRequest req = WebRequest.Create(FTPサーバ名);
req.Credentials = new NetworkCredential(ユーザ名, パスワード);
req.Method = WebRequestMethods.Ftp.DownloadFile;
req.Method = WebRequestMethods.Ftp.GetFileSize;
FtpWebResponse res = (FtpWebResponse)req.GetResponse();
Stream st = res.GetResponseStream();
FileStream fs = new FileStream(FTPファイル名, FileMode.Create);
Byte[] buf = new Byte[1024];
int count = 0;

do
{
count = st.Read(buf, 0, buf.Length);
fs.Write(buf, 0, count);
} while (count != 0);

ftpsize = res.ContentLength;
fs.Close();
st.Close();
res.Close();

//ローカルからFTPサーバにアップロード
req = WebRequest.Create(サーバテストファイル);
req.Credentials = new NetworkCredential(ユーザ名, パスワード);
req.Method = WebRequestMethods.Ftp.UploadFile;
req.Method = WebRequestMethods.Ftp.GetFileSize;

st = req.GetRequestStream();
fs = new FileStream(FTPサーバ名, FileMode.Open);
buf = new Byte[1024];
count = 0;

do
{
count = fs.Read(buf, 0, buf.Length);
st.Write(buf, 0, count);
} while (count != 0);

//ファイルサイズ取得
ftpsize = (long)res.ContentLength;

fs.Close();
st.Close();
res.Close();



これはやはり私が使用しているサーバのセキュリティなどの問題なのでしょうか?
それとも根本的に間違っているのでしょうか?

ヒントをいただけたらありがたいです。

よろしくお願いいたします。
引用返信 編集キー/
■4620 / inTopicNo.6)  Re[2]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ ぽぴ王子 (221回)-(2007/06/20(Wed) 18:52:39)
ぽぴ王子 さんの Web サイト
No4615 (moe さん) に返信

えーと、とりあえず落ち着いて考えてみることが先決だと思います。
よくわからず、動かないからその辺にアタリをつけてごそごそやってみた、というレベル
だと動くものも動かなくなってしまう可能性が高いです。

自分が作っているプログラムが何をしているのか、を落ち着いて考えてみ
ましょう。


手元に環境がないのでテストができない状態ではありますが…
ちょっとソースを覗いて見たところで気になった点がいくつか。

> //リモートPCのファイル指定(FTPサーバ配下のファイルを処理)
> サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/ftproot/ftptestfile.txt";

(中略)

> //ローカルからFTPサーバにアップロード
> req = WebRequest.Create(サーバテストファイル);
> req.Credentials = new NetworkCredential(ユーザ名, パスワード);
> req.Method = WebRequestMethods.Ftp.UploadFile;
> req.Method = WebRequestMethods.Ftp.GetFileSize;

これ、おかしくないですか?
「サーバテストファイル」の内容が // から始まる(たぶん \\ の意だと思うのですが)
UNC パスになっているような気がします。
サーバ名/C/Inetpub/ftproot/〜 って、FTP でそんな URL は指定できません。


> //ftpサーバ指定
> FTPサーバ名 = "ftp://" + サーバ名 + @"/ftptestfile.txt";

(中略)

> st = req.GetRequestStream();
> fs = new FileStream(FTPサーバ名, FileMode.Open);
> buf = new Byte[1024];
> count = 0;

ここもアウトだと思います。
上の逆で、FTP で指定する URL を使って FileStream クラスでもってファイルを作ろう
としていますね。
これが Hongliang さんが指摘された

> System.IO.FileInfo クラスは共有フォルダ相手が限界です。
> FTP を使ってサーバに聞きにいく必要があります。

という意味です(これは FileInfo じゃなくて FileStream ですけど)。

・ローカルのファイルを操作しようとしているのか
・FTP でサーバ上のファイルを操作しようとしているのか

を明確に分けて考えないと、こういう感じにごっちゃになってしまうと思います。


> これはやはり私が使用しているサーバのセキュリティなどの問題なのでしょうか?
> それとも根本的に間違っているのでしょうか?

上記のことを考えると、サーバのセキュリティ以前の問題のようです。


> 下のソースでは書いてないのですが、手順Aのサーバにファイル作成がうまくいきません。
> また下のソースではBとCの手順を逆にしています。
> ダウンロードはうまくいくのに、アップロードがうまくいきません。
> エラーは「リモート サーバーがエラーを返しました: (550) ファイルが使用できません (例: ファイルが見つからない、ファイルへのアクセスがない)」です。

WebRequest クラスはほとんど使ったことはないですが、ダウンロード時とアップロード
時で方法が違っていて、ただ逆にすればよいというものではないのかもしれません(憶測
ですが)。

あと、.NET Framework 2.0 ということで、Hongliang さんも書かれている 
FtpWebRequest クラスを使ってみるといいかもしれないです。

もう少し考えてみてください。

# ソースリストを載せるときは図表モードにするといいですよ。

引用返信 編集キー/
■4631 / inTopicNo.7)  Re[4]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ eternia (1回)-(2007/06/21(Thu) 11:55:03)
.NET Framework 2.0を使って作ったことはないんですが……

> //ローカルからFTPサーバにアップロード
> req = WebRequest.Create(サーバテストファイル);

> fs = new FileStream(FTPサーバ名, FileMode.Open);

ここのパス指定が違うと思います。
WebRequest.CreateにFTP側のファイル、
FileStreamにアップロードするファイルを指定してみてください。

>WebRequest クラスはほとんど使ったことはないですが、ダウンロード時とアップロード
>時で方法が違っていて、ただ逆にすればよいというものではないのかもしれません(憶測
>ですが)。

逆にする箇所が間違っていたのかと。
WebRequest.Methodの変更だけでよさそうです。(DownloadFile/UploadFile)
引用返信 編集キー/
■4633 / inTopicNo.8)  Re[3]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ Hongliang (149回)-(2007/06/21(Thu) 12:42:56)
Hongliang さんの Web サイト
WebClient でアップロード/ダウンロードができてるのなら(機能的にも問題ないのなら)、それに関してはわざわざ (Ftp)WebRequest 使うまでもないと思いますけど。
引用返信 編集キー/
■4638 / inTopicNo.9)  Re[4]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ moe (4回)-(2007/06/21(Thu) 13:59:23)
Hongliang さん

レスありがとうございます。


> WebClient でアップロード/ダウンロードができてるのなら(機能的にも問題ないのなら)、それに関してはわざわざ (Ftp)WebRequest 使うまでもないと思いますけど。


最初はうまくいっていたのですが、(つもりかもしれませんが・・・)実はサーバにアップロードする際に

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

というエラーが出るようになってしまいました。

そこであらかじめサーバにファイルを作成しようと


FileStream fs = new FileStream(FTPサーバ名, FileMode.Create, FileAccess.ReadWrite);


というように書いてみたのですが、またここでエラーが出てしまい先に進めませんでした。

FileStreamはネットワーク越しのファイルに対してのものではないからですかね??

WebClientでローカルからサーバにファイルをアップロードする場合には、先にサーバ側にファイルがないとアップロードできないのでしょうか??

どのようにしてサーバ側にファイルを作ったらいいのでしょうか??

またファイルのアップロード、ダウンロードが成功した場合の結果取得はどのようにしたらいいですか?

今は無理やりファイルのバイト数を取得して比較しようとしているのですが、サーバ側のファイルバイト数は取得できないままです。
もしそんな面倒な事しなくてよいのならば、いいのになと思っています。

以上よろしくお願いいたします。
引用返信 編集キー/
■4641 / inTopicNo.10)  Re[5]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ moe (5回)-(2007/06/21(Thu) 14:13:12)
eternia さま

レスありがとうございます。

色々と試行錯誤しながらやってますが、まだうまくいっていません。。。

eternia さまからご指摘があった箇所を直してみたのですが、次は


「ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。」


というようなエラーが戻ってきました。

ユーザ名、パスワードについては正しいものなのですが・・・


サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/Ftproot/ftptestfile.txt";


の箇所を以下のように変更してみました。


サーバテストファイル = @"\\" + サーバ名 + @"\C\Inetpub\Ftproot\ftptestfile.txt";



>>//ローカルからFTPサーバにアップロード
>>req = WebRequest.Create(サーバテストファイル);
>
>>fs = new FileStream(FTPサーバ名, FileMode.Open);



のところをご指摘があったので、下記のように変えてみました。



WebRequest req = WebRequest.Create(サーバテストファイル);
req.Credentials = new NetworkCredential(ユーザ名, パスワード);
req.Method = WebRequestMethods.Ftp.UploadFile;
req.Method = WebRequestMethods.Ftp.GetFileSize;
FtpWebResponse res = (FtpWebResponse)req.GetResponse();
NetworkStream st = (NetworkStream)req.GetRequestStream();
FileStream fs = new FileStream(FTPファイル名, FileMode.Open);



ネットワークプログラミングって難しいです。

全くわかりません。。。

お手数かけますが、よろしくお願いいたします。
引用返信 編集キー/
■4644 / inTopicNo.11)  Re[3]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ moe (6回)-(2007/06/21(Thu) 14:35:14)
ぽぴ王子 さま

レスありがとうございます。

まだ初心者で、とにかくネットで参考になるソースを探してはコピーしている状態です。
なので、内容を完全に理解できてはいません。

特にネットワーク関係は初めてでさっぱり・・・


一応これについては

>>//リモートPCのファイル指定(FTPサーバ配下のファイルを処理)
>>サーバテストファイル = @"//" + サーバ名 + @"/C/Inetpub/ftproot/ftptestfile.txt";


サーバテストファイル = @"\\" + サーバ名 + @"\C\Inetpub\Ftproot\ftptestfile.txt";


のように変えてみました。



> ここもアウトだと思います。
> 上の逆で、FTP で指定する URL を使って FileStream クラスでもってファイルを作ろう
> としていますね。
> これが Hongliang さんが指摘された
> 
>>System.IO.FileInfo クラスは共有フォルダ相手が限界です。
>>FTP を使ってサーバに聞きにいく必要があります。
> 
> という意味です(これは FileInfo じゃなくて FileStream ですけど)。
> 
> ・ローカルのファイルを操作しようとしているのか
> ・FTP でサーバ上のファイルを操作しようとしているのか
> 
> を明確に分けて考えないと、こういう感じにごっちゃになってしまうと思います。



System.IO.FileInfo クラスを使用せずに、サーバ側のファイル操作をするにはどうしたらよいのでしょうか?

色々探してみたのですが、ネットワーク越しのファイルを操作する方法がわかりませんでした。

FtpWebRequest クラスも調べてトライしてみたのですが、またまたエラーが出ました。。。




FtpWebRequest request = (FtpWebRequest)WebRequest.Create(サーバテストファイル);
request.Method = WebRequestMethods.Ftp.GetFileSize;
                    
FtpWebResponse response = (FtpWebResponse)request.GetResponse();

response.Close();



情報取得のやり方がわからなかったので、中途半端なコードなのですが・・・



色々調べまくっているのですが、理解できない事が多すぎてどうしようもありません。

理解するにはしばらくかかりそうです。

もう少しヒントをいただけませんか?

よろしくお願いいたします。

引用返信 編集キー/
■4668 / inTopicNo.12)  Re[6]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ eternia (3回)-(2007/06/21(Thu) 17:59:31)
No4641 (moe さん) に返信

> ご指摘があったので、下記のように変えてみました。

> WebRequest req = WebRequest.Create(サーバテストファイル);
> req.Credentials = new NetworkCredential(ユーザ名, パスワード);
> req.Method = WebRequestMethods.Ftp.UploadFile;
> req.Method = WebRequestMethods.Ftp.GetFileSize;
> FtpWebResponse res = (FtpWebResponse)req.GetResponse();
> NetworkStream st = (NetworkStream)req.GetRequestStream();
> FileStream fs = new FileStream(FTPファイル名, FileMode.Open);
>

あう……伝わってなかったみたいw

>WebRequest.CreateにFTP側のファイル、
>FileStreamにアップロードするファイルを指定してみてください。

と言いました。ですので、

<誤り> WebRequest req = WebRequest.Create(サーバテストファイル);
→ WebRequest req = WebRequest.Create(FTPサーバ名);

ですね。
値にファイル名まで入っていたのでFTP側のファイルと言ってしまいました。
誤解させてしまったようですいません。

また、試行錯誤の結果と思いますが急にFtpWebResponseが出てきました。
あるとエラーになるかもしれないのでそこは外して試してくださいね。

引用返信 編集キー/
■4713 / inTopicNo.13)  Re[7]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ moe (8回)-(2007/06/22(Fri) 18:59:27)
eternia さま

レスありがとうございます。

せっかく教えていただいたのにすいません。。。

教えていただいたとおりに変えてみましたがまだエラーが発生します。

最初WebClientクラスにて処理を行っていました。
サーバの環境とローカルの環境が変わってしまい、その後からエラーが出るようになりました。
もしかしたらそのせいかもしれないのですが、管理者に聞いてもよくわからないとのことでした。
ドメインとかかもしれません。

間違っていないはずなのにリモートのエラーが出ます。

ネットワーク越しに何か操作するというのは本当に難しいですね。

コマンドで処理できるのに、なぜ.NETから処理するとできないんでしょうか??
引用返信 編集キー/
■4761 / inTopicNo.14)  Re[8]: C#でFTP使用のファイル送受信(リモート)
□投稿者/ eternia (4回)-(2007/06/25(Mon) 10:51:32)
> 最初WebClientクラスにて処理を行っていました。
> サーバの環境とローカルの環境が変わってしまい、その後からエラーが出るようになりました。

これって一番最初に載せたソースコードの時でしょうか?
読み返してみたら最初はアップロードできていたんですね。
その後のファイル操作でエラーが出ていただけで。

今の状況で何ができていて、何ができないのかを整理したほうがいいかもしれません。

1.FTPの接続
2.ファイルのダウンロード
3.ファイルのアップロード
4.リモートファイルのサイズ取得
5.上記をローカルファイルと比較
6.実行結果の取得

余計な機能は外して、その機能だけでできているか確認してみてください。
例:ダウンロードなら余計なチェックはなしでファイルが送れるかだけ確認する

おそらく出ているのは今までと同じエラーなのだと思いますが。。。
一応エラー内容は載せてみてください。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -