Counter: 1566, today: 1, yesterday: 0

内容

目的

どうぶつの森で撮った写真をワンタッチでサーバにアップする。

使用イメージ

SDカードをPCにさして、gazou_up.batを起動(ダブルクリック)。

実行されること

1.SDカードからHDDへ画像の移動

gazou_up.batを実行したディレクトリの配下に実行日時のディレクトリ(20090326_00051265等)を作成し、SDカードのJPGファイルをすべてその配下に移動する。

例)
C:\Documents and Settings\日向充\My Documents\72.どうぶつの森
配下に20090326_00051265を作成し、そこに
I:\DCIM\110NIN01\
配下のJPG画像をすべて移動。

2.画像一覧htmlを作成

各画像を縮小表示したリンク一覧、ichiran.htmを作成する。

例)
http://hinata.la.coocan.jp/doubutsu/20090326_00051265/ichiran.htm

3.画像のアップ

http://hinata.la.coocan.jp/doubutsu/

配下に実行日時のディレクトリを作成し、その配下に画像をすべてアップする。

例)
http://hinata.la.coocan.jp/doubutsu/20090326_00051265/RUU_0001.JPG
http://hinata.la.coocan.jp/doubutsu/20090326_00051265/RUU_0002.JPG

4.画像表示バッチの作成

実行日時のディレクトリ配下にhyouji.batを作成。

例)
C:\Documents and Settings\日向充\My Documents\72.どうぶつの森\20090326_00051265\hyouji.bat

中は

for %%A in (*.JPG) do start "" "http://hinata.la.coocan.jp/doubutsu/20090326_00051265/%%A"
start "" "http://hinata.la.coocan.jp/doubutsu/20090326_00051265/ichiran.htm"

のような内容。
これをダブルクリックすると3でアップした画像すべてと2で作成したichiran.htmをWeb上で表示する。

5.結果表示

  • 5-1.Web上の画像の表示
     アップロードした画像をすべてWeb上で表示する。
    http://hinata.la.coocan.jp/doubutsu/20090326_00051265/RUU_0001.JPG
    http://hinata.la.coocan.jp/doubutsu/20090326_00051265/RUU_0002.JPG
    等。
  • 5-2.HDD上に移動した画像の表示
     HDD上に作成したディレクトリを表示する。
    C:\Documents and Settings\日向充\My Documents\72.どうぶつの森\20090326_00051265
    等
  • 5-3.ichiran.htmの表示
     2で作成したichiran.htmを表示する。
    http://hinata.la.coocan.jp/doubutsu/20090326_00051265/ichiran.htm

導入方法

1.最新版gazou_up_xxxxxx.zipのダウンロード

をダウンロードする。

2.zipファイルの展開

任意のディレクトリにgazou_up_xxxxxx.zipを配置し、展開する。

例)
C:\Documents and Settings\日向充\My Documents\72.どうぶつの森
にgazou_up_090407.zipを配置しダブルクリック。

3.展開されたファイルの確認

gazou_up.bat
gazou_up\html.txt
         make_ftptxt.pl
         makebat.pl
         makehtml.pl
         putjpg.bat

の構成で1ディレクトリ、6ファイルが展開されることを確認する。

例)
C:\Documents and Settings\日向充\My Documents\72.どうぶつの森\gazou_up_090407\gazou_up.bat
                                                                              gazou_up\html.txt
                                                                                       make_ftptxt.pl
                                                                                       makebat.pl
                                                                                       makehtml.pl
                                                                                       putjpg.bat

4.Perlのインストール

Perlをインストールしていない場合、ここ等からPerlをダウンロードし、インストールする。

5.gazou_up.batの編集

gazou_up.batを右クリック→編集
により開き、環境に合わせて内容を編集する。
編集するのは以下の7変数。

REM =========ここから変数設定=========
REM (マイクロ)SDカードのパス
set SD_DIR=I:\DCIM\110NIN01
REM ベースとなるWeb上のURL
set URL_BASE=http://hinata.la.coocan.jp/doubutsu
REM Perl.exeの配置場所
set PERL="C:\Documents and Settings\日向充\My Documents\08.Perl\bin\Perl.exe"
REM [サーバ情報]アドレス
set SERVER_ADDR=ftp.la.coocan.jp
REM [サーバ情報]ユーザ名
set SERVER_USER=hinata.la.coocan.jp
REM [サーバ情報]パスワード
set SERVER_PASS=xxxxxxx
REM [サーバ情報]ベースとなるディレクトリ(URL_BASEに対応するサーバ上のディレクトリ)
set SERVER_DIR=/hinata.la.coocan.jp/homepage/doubutsu
REM =========ここまで変数設定=========

修正したら保存し、閉じる。

6.ツールの実行

gazou_up.batをダブルクリックし、上記に記述している実行されることがすべて実行されたら導入成功。

ディレクトリ構成

C:\Documents and Settings\日向充\My Documents\72.どうぶつの森\gazou_up.bat    ←これをダブルクリック
                                                             \gazou_up\putjpg.bat                 ←gazou_up.batから呼ばれるサブモジュール。(ユーザは意識しなくてOK)
                                                                       make_ftptxt.pl             ←同上
                                                                       makebat.pl                 ←同上
                                                                       makehtml.pl                ←同上
                                                                        putjpg.txt                 ←ツールの実行により生成される中間ファイル(ユーザは意識しなくてOK)
                                                                        ftp.log                    ←ツールの実行により生成されるログファイル(ユーザは意識しなくてOK)
                                                             \20090326_00051265\                  ←ツールの実行により生成される画像格納ディレクトリ
                                                                                hyouji.bat         ←ツールの実行により生成されるWeb画像表示バッチ
                                                                                tag.txt            ←ツールの実行により生成されるココログ用tagテキスト
                                                                                RUU_0001.JPG       ←自動退避された画像たち
                                                                                RUU_0002.JPG
                                                             \20090321_22513134\                  ←ツールを実行するたびにこういったディレクトリが作成される。
                                                                                                     (中身は20090321_23020440と同じ。)
                                                             \20090321_21582725\
                                                              ・・・・・・・・・
                                                              ・・・・・・・・・

ソースイメージ

gazou_up.bat

REM =========ここから変数設定=========
REM (マイクロ)SDカードのパス
set SD_DIR=I:\DCIM\110NIN01
REM ベースとなるWeb上のURL
set URL_BASE=http://hinata.la.coocan.jp/doubutsu
REM Perl.exeの配置場所
set PERL="C:\Documents and Settings\日向充\My Documents\08.Perl\bin\Perl.exe"
REM [サーバ情報]アドレス
set SERVER_ADDR=ftp.la.coocan.jp
REM [サーバ情報]ユーザ名
set SERVER_USER=hinata.la.coocan.jp
REM [サーバ情報]パスワード
set SERVER_PASS=xxxxxxxx
REM [サーバ情報]ベースとなるディレクトリ(URL_BASEに対応するサーバ上のディレクトリ)
set SERVER_DIR=/hinata.la.coocan.jp/homepage/doubutsu
REM =========ここまで変数設定=========

REM =========ここから処理=========
REM マイクロSDカードの内容を表示
dir %SD_DIR%
REM 日付のディレクトリを作成
set DT=%date:/=%
set DT=%DT:月 =%
set DT=%DT:火 =%
set DT=%DT:水 =%
set DT=%DT:木 =%
set DT=%DT:金 =%
set DT=%DT:土 =%
set DT=%DT:日 =%
set DT=%DT: =%
set TM=%time::=%
set TM=%TM:.=%
set TM=%TM: =0%
set dirame=%DT%_%TM%
md %dirame%
REM SDカードから画像を移動
move "%SD_DIR%\*.JPG" .
REM 一覧htmlの作成
for %%A in (*.JPG) do %PERL% "gazou_up/makehtml.pl" %URL_BASE% %dirame% %%A
type gazou_up\html.txt>>ichiran.htm
REM ftpでサーバにアップ
cd gazou_up
%PERL% "make_ftptxt.pl" %SERVER_ADDR% %SERVER_USER% %SERVER_PASS% %SERVER_DIR% %dirame%
Call putjpg.bat
cd ..
REM 画像を日付ディレクトリに退避
move *.JPG %dirame%
move ichiran.htm %dirame%
REM 画像をWeb上で表示
cd %dirame%
for %%A in (*.JPG) do start "" "%URL_BASE%/%dirame%/%%A"
start "" "%URL_BASE%/%dirame%/ichiran.htm"
REM 配下のJPGに対応するWebページをすべて表示するbatの作成。
%PERL% "../gazou_up/makebat.pl" %URL_BASE% %dirame%
REM HDD上のディレクトリを表示
start "" "."

makehtml.pl

ichiran.htmを生成するpl。(ichiran.htmについては上記を参照のこと。)

#!/usr/bin/perl

$URL="${ARGV[0]}/${ARGV[1]}/${ARGV[2]}";
$filename="${ARGV[2]}";
open(FW,">>ichiran.htm");
print FW << "EOL";

<a  href="$URL">
<img title="$filename" height="120" alt="$filename" src="$URL" 
width="160" border="0" style="FLOAT: left; MARGIN: 0px 5px 5px 0px" /></a>

EOL
close (FW);

※ このperlをgazou_up.bat内で起動している。

for %%A in (*.JPG) do %PERL% "gazou_up/makehtml.pl" %URL_BASE% %dirame% %%A

のように実行することにより、上記で記述したichiran.htmができる。(%で囲まれている各変数はgazou_up.batの冒頭で設定している値。%%Aはforの繰り返しで使用している変数。)

make_ftptxt.pl

#!/usr/bin/perl

$server="${ARGV[0]}";
$user="${ARGV[1]}";
$pass="${ARGV[2]}";
$base_dir="${ARGV[3]}";
$thistime_dir="${ARGV[4]}";

open(FW,">putjpg.txt");

print FW << "EOL";
open $server
$user
$pass
cd $base_dir
mkdir $thistime_dir
cd $thistime_dir
lcd ..
binary
prom
mput *.JPG
put ichiran.htm
ls
disconnect
bye
EOL
close(FW);

※ このperlをgazou_up.bat内で起動している。

 %PERL% "make_ftptxt.pl" %SERVER_ADDR% %SERVER_USER% %SERVER_PASS% %SERVER_DIR% %dirame%

のように実行することにより、putjpg.txtという名前で以下の内容のファイルができる。(%で囲まれている各変数はgazou_up.batの冒頭で設定している値。)

open ftp.la.coocan.jp
hinata.la.coocan.jp
■この行にパスワードが記載されている
cd /hinata.la.coocan.jp/homepage/doubutsu
mkdir 20090326_00051265
cd 20090326_00051265
lcd ..
binary
prom
mput *.JPG
put ichiran.htm
ls
disconnect
bye

putjpg.bat

ftp -s:putjpg.txt>>ftp.log

これは、、まったくバッチを分ける必要なかったかもしれないけど、モジュール分割していた方がデバッグや動作確認等らくだったので。。

※ ftpはこのように呼べば、txtに記載された内容を実行する。

makebat.pl

各日時ディレクトリ配下にhyouji.batを作成するpl。(hyouji.batについては上記を参照のこと。)

#!/usr/bin/perl
#配下のJPGに対応するWebページをすべて表示するbatの自動作成。

open(FW,">>hyouji.bat");
print FW << "EOL";
for %%A in (*.JPG) do start "" "${ARGV[0]}/${ARGV[1]}/%%A"
start "" "${ARGV[0]}/${ARGV[1]}/ichiran.htm"
EOL
close (FW);

※ このperlをgazou_up.bat内で起動している。

%PERL% "../gazou_up/makebat.pl" %URL_BASE% %dirame%

のように実行することにより、上記で記述したhyouji.batができる。(%で囲まれている各変数はgazou_up.batの冒頭で設定している値。)

改版履歴

090309(初版)

この日のメモ→メモメモ/2009-03-09

090311

表示するWebページを1枚目だけでなくすべての画像に変更。

090312

Bug#1の対処及びBug#2の暫定対処。

090321

PukiWiki貼り付け用タグを表示するtag.txtを自動生成する機能を追加。
Bug#2の対処をstartではなくdirに変更。(これを本対処とする。)

この日のメモ→メモメモ/2009-03-21

090325

携帯画像自動アップ&tag作成ツールにあわせ、ユーザ情報を一箇所にまとめた。
PukiWiki用貼り付けタグ自動生成をやめて、縮小画像の一覧htmlを作成するように変更。
ichiran.htmもアップすることにしたため、hyouji.batではこれも起動するように変更。(そのため、makebat.plが変更されている。)

090407

ichiran.htmにどうぶつの森の広告とこのページへのリンクを追加。

この日のメモ→メモメモ/2009-04-07

バグ管理簿


  • 時間のスペースを0に置換。 -- 日向充 2009-03-12 (木) 01:33:34
  • なぜかSDカードを差し込んだ最初に1回がうまくいかない。 -- 日向充 2009-03-12 (木) 01:34:01
  • 色々ありがとう。えっと、週末にゆっくりやってみるよ。。。 -- みゅ 2009-03-13 (金) 00:50:00
  • コメントありがとうございます。いまさらながらこれを動かすにはPerl.exeが必要です。入っていますかね。バッチだけでいけるほうがいいですね。。 -- 日向充 2009-03-17 (火) 01:31:20
  • バッチだけでいけるようにカスタマイズ可能です。必要だったら言って下さい。 -- 日向充 2009-03-17 (火) 01:48:56



添付ファイル: filegazou_up_090407.zip 102件 [詳細] filegazou_up_090325.zip 96件 [詳細] filehtml.txt_090407.txt 133件 [詳細] filegazou_up.bat_090407.txt 130件 [詳細] filegazou_up.bat_090325.txt 135件 [詳細] filemakehtml.pl_090325.txt 122件 [詳細] filemakebat.pl_090325.txt 123件 [詳細] filemake_ftptxt.pl_090325.txt 113件 [詳細] filegazou_up.bat_090321.txt 119件 [詳細] filegazou_up.bat_090312.txt 133件 [詳細] filegazou_up.bat_090311.txt 116件 [詳細] fileputjpg.bat_090309.txt 147件 [詳細] filemake_ftptxt.pl_090309.txt 138件 [詳細] filegazou_up.bat_090309.txt 140件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-01-27 (月) 08:42:13 (1185d)