2017年09月 / 08月≪ 123456789101112131415161718192021222324252627282930≫10月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2008.05.27 (Tue)

FC2ブログでファイルを一括アップロード - UWSC

追記
現在の最新版はFC2ブログでファイルを一括アップロード【更新】 - UWSCになります。
IE8の場合はこのUWSCスクリプトだとアップロードできません。

IE8でもアップロードするために一括アップロード用のソフトを自作したので、
どこぞの知らない人が作ったソフトにIDやパスワードを入れるのに抵抗がなければ使ってみてください。
FC2ブログでファイルを一括アップロードするソフトを作ったよ




このFC2ブログってファイルを一括でアップロードする機能がついていなくて、
画像をたくさんアップしたい場合にものすごいめんどくさい。
ということで、UWSCで一括アップロードスクリプトを書くことにしました。

動作は単にIEでアップロード画面を開き、指定フォルダ(SRC_DIR)内のすべてのファイルを順次アップロードするという動作。


使い方
1.USERIDにFC2ブログのユーザーID、PASSWORDにパスワードを入れるか、IEでFC2ブログにログインしておく(ログイン状態であればID,パスワードは不要)
2.任意の場所にフォルダを作成し(D:\Temp\updirとか)、アップロードしたいファイルを作成したフォルダに入れる
3.「SRC_DIR」に2.で作成したフォルダのパスを入れる
4.UWSCで以下のスクリプトを実行

注)指定したフォルダ内のすべてのファイルをアップロードしようとするので、アップロードし終わったファイルは削除してください


FC2ブログ一括アップロード.txt
↑拡張子を.UWSに変更して使用してください

↓中身はこんな感じ



// *****************
// 基本設定
// *****************
PUBLIC USERID = "user"
PUBLIC PASSWORD = "pass"
PUBLIC SRC_DIR = "D:\Temp\updir"  //アップロードフォルダ



// *****************
// 設定内容の確認
// *****************
ifb SRC_DIR = "" then
  msgbox("アップロード対象フォルダが設定されていません")
  exit
endif

try
  // ファイルの取得
  filecount = GetDir(SRC_DIR)
  // アップロードするファイルがない場合終了
  ifb filecount = 0 then
    msgbox("アップロード対象ファイルが見つかりません。<#cr>" + SRC_DIR)
    exit
  endif
except
  // 例外が発生したら終了
  msgbox("エラー:" + TRY_ERRMSG)
  exit
endtry


PUBLIC IE = CreateOLEObj("InternetExplorer.Application")
PUBLIC ID = HNDTOID(ie.hwnd)

// *****************
// メイン処理
// *****************
IE.Visible = true;
// FC2ブログhpを開く
IE.Navigate("http://blog.fc2.com/");

REPEAT
 SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4

// ログインフォームが存在する場合
ifb IE.document.getElementsByName("login").length > 0 then
  frm = IE.document.getElementsByName("login").Item(0)
  IE.document.getElementById("acid").value = USERID
  IE.document.getElementById("passwd").value = PASSWORD
  frm.submit()
else
  IELINK(IE, "・ブログ管理画面へ")
endif

REPEAT
 SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4


ifb pos("管理ページ", STATUS(ID, ST_TITLE)) = 0 then
  // ログインできなかったら終了
  msgbox("ログインできませんでした。")
  exit
endif

// アップロード画面を開く
IELINK(IE, "ファイルアップロード")
REPEAT
 SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4


// ファイル数分アップロード
for i = 0 to filecount - 1
  // フォーム取得
  frm = IE.document.getElementsByName("upload").Item(0)
  // ファイルパス
  filepath = SRC_DIR + "\" + GETDIR_FILES[i]
  
  // 最小化してるとファイル名が入らないので戻す
  if STATUS(ID, ST_ICON) then CTRLWIN(ID, NORMAL)
  
  // ファイル入力ボックスにフォーカスを当てる
  frm.upfile.focus()
  // sendstrで入力
  sendstr(ID, filepath)
  
  inputs = frm.getElementsByTagName("input")
  // type=submitを探す
  for j = 0 to inputs.length - 1
    ifb inputs.item(j).type = "submit" then
      // 見つかったらクリックしてアップロード
      inputs.item(j).click
      break
    endif
  next
  
  REPEAT
   SLEEP(1)
  UNTIL !IE.busy AND IE.readystate=4
next

msgbox("完了")




 |  18:16  |  UWSC  |  トラックバック(0)  |  コメント(2)  |  Top↑

Comment

●はじめまして

はじめまして。
FC2の一括アップロードの方法を探していて、こちらを見つけました。早速、遣わせていただこうと思ったのですが、ログイン後のトップページが開くと、
”Uスクリプト:COM_Errow 
50行目:IE document.getElementById["acid"]value=USERID"
とメッセージが出て。OKを押すとUWSCが中止になってしまいます。
OSはXPで英語です。
そのためFC2Uploadはうまく作動してくれませんでした。
上野メモさんのUWSCも日本語対応のみでしょうか。
お忙しいところお手数をおかけしますが、教えてください。
Vine |  2008.09.26(金) 13:27 |  URL |  【コメント編集】

●英語環境について

はじめましてVineさん。コメントありがとうございます。
英語OSとは盲点でした。
このコードではリンク文字の判断などは日本語で行っているため、完全日本語対応のみとなっています。

こちらのパソコンにちょうど英語版XPの環境がありましたので、
表記のエラーも再現できました。
原因は英語環境だと「["acid"]」と「value」の間の「.(ドット)」が消えてしまうため、表記のエラーが出ていたようです。

このエラーの対策も含め、英語環境対応のUWSCコードをアップしたのでこちらを使用してみてください。
http://uenomemo.blog31.fc2.com/blog-entry-254.html

こちらでもまたエラーが出たり、使えなかったりした場合はそちらの記事にまたコメントを頂けると有難いです。
上野メモ |  2008.09.26(金) 15:22 |  URL |  【コメント編集】

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。