FTP には timestamp を変更したり保持したりするコマンドがありません。
timestamp は FTP サーバが自動的につけます。
どうしても timestamp を変更したければ、telnet や ssh 等でリモートサーバにログインして touch -t コマンドを使うか、提示した URL のように timestamp を変更する CGI を自作して実行するしかないと思います。
もしあなたが FTP サーバの管理者ならば、 FTP サーバの時刻を希望の時刻に変更してから、アップロードするという手もあるかもしれません。
上記のようにかなりややこしいことをすれば可能ですが、あまり実用的ではありませんね・・。
基本的には、inokuniさんの言う通り出来ないと思っておいたほうがよさそうです。
ありがとうございます。
http://www.toyota.ne.jp/~kawauso/web/
簡単FTPソフトウェア FTP Exchange
多分、こんなソフトをお望みなのでは?。
私が使っていますのは、FTP Exchange というソフトです。更新したファイルだけをワンクリックでFTPサーバーに自動転送します。多分、タイムスタンプを比較していると思われます。
http://www.vector.co.jp/vpack/filearea/win95/net/htmledit/copy/i...
Vector:ダウンロード Windows95/98/Me用ソフト > インターネット&通信 > HTML作成 > ホームページ更新
言わずと知れたVectorです。
にゃんこ FTP、FTP XCOPY、Auto FTPが同目的で使用できるようです。
※使ったことはありませんm(_._)m。
更新したファイルだけをアップロードしたいわけではなく、パソコン内のタイムスタンプを保持したままアップロードしたいってのが答えです。
inokuniさんのsage.plプログラムはサーバーにアップロードし、必要事項を直し、実行させればできると言うプログラムと言うことでしょうか?ちと命令を調べてみようとは思っています。
または、サーバー内のファイルを一回消して、アップロードしたらパソコンのタイムスタンプが引き継がれていれば良いのです。
Windows.FAQ - ウィンドウズ処方箋
CGI実行するプロセスに書き換える権利があればこのCGIで日時を設定できます
手抜きなので必ず年は4桁
月日時分秒は2桁で指定してください
サンプル
sample.cgi?filename=dat%2ftest%2eerr&year=2001&month=11&day=11&hour=11&minute=20&second=11
-----------------------
#!/usr/local/bin/perl
$mthd=$ENV{’REQUEST_METHOD’};
local($qu,@in,$key,$val);
if($mthd eq ’GET’){
$qu=$ENV{’QUERY_STRING’};
}
elsif($mthd eq ’POST’){
read(STDIN,$qu,$ENV{’CONTENT_LENGTH’});
}
print qq(Content-type: text/html¥n¥n);
print ”<html><body>¥n”;
print qq(<META HTTP-EQUIV=¥”Content-Type¥” CONTENT=¥”text/html; CHARSET=Shift_JIS¥”>¥n);
*query = decode();
$filename=$query{’filename’};
$ye=$query{’year’};
$mo=$query{’month’};
$da=$query{’day’};
$ho=$query{’hour’};
$mi=$query{’minute’};
$se=$query{’second’};
$dates=$mo.$da.$ho.$mi.$ye.’.’.$se.’ ’.$filename;
print ”touch -t $dates”;
system ”touch -t $dates”;
print qq(
変更完了</BODY></HTML>);
exit;
sub decode
{
local(@query)=split(/&/,$qu);
foreach(@query){
tr/+/ /;
($key,$val)=split(/=/);
$key=~s/%([A-Fa-f0-9][A-Fa-f0-9])/pack(”c”,hex($1))/ge;
$val=~s/%([A-Fa-f0-9][A-Fa-f0-9])/pack(”c”,hex($1))/ge;
$val=~s/¥r¥n/¥n/g;
$vin{$key}=$val;
}
return *vin;
}
ありがとうございます。何とかやってみます。
ありがとうございます。