SQLの窓

2011年05月22日


Firefox4 専用。XMLHttpRequest を使用した複数ファイルのアップロード

元は、Using files from web applications - MDC Docs にあるサンプルの
★ Handling the upload process for a file を使用していますが、できる
限りシンプルになるように変更しています。PHP 側は POST の生データを受
け取ってファイル化するだけですが、ファイル名を渡す為に URL に付加して
$_GET を使えるようにしています

これと組み合わして、Firefox4 : ローカルPCからファイルをドラッグドロップして
ファイルの中身を使用する事ができます を使うと、ドラッグドロップでファイルを簡
単にアップロードする事も可能です
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
</head>
<body>

<input
	type="file"
	id="fileElem"
	multiple="true"
	accept="image/*"
	style="display:none"
	onchange="handleFiles(this.files)"
>  
<a href="#" id="fileSelect">複数ファイルの選択</a>

<script type="text/javascript">
// ファイル選択呼び出し用のリンク
var fileSelect = document.getElementById("fileSelect");
// クリックイベントの登録
fileSelect.addEventListener("click", function(e) {
	if (fileElem) {
		fileElem.click();
	}
	e.preventDefault(); // "#" での動きをキャンセルする
}, false);

// 非表示のファイル選択フィールド
var fileElem = document.getElementById("fileElem");

// 選択時のイベント
function handleFiles(files) {

	// アップロード用
	var xhr = new XMLHttpRequest();

	var fileList = files;

	// Firebug で表示
	for( var i = 0; i < fileList.length; i++ ) {
		// コードを簡単にする為に、同期処理
		xhr.open("POST", "upload.php?fn="+fileList[i].fileName, false);
	    xhr.sendAsBinary(fileList[i].getAsBinary());

		console.log(xhr.responseText);
	}

}
</script>


</body>
</html>


upload.php
<?
session_start();
if ( $_SESSION['cnt'] == '' ) {
	$_SESSION['cnt'] = 0;
}
$_SESSION['cnt']++;
$file_cnt = "upload".$_SESSION['cnt'];

// hp://input は、POST の生データの読み込みを 許可します。
// enctype="multipart/form-data" に対しては 使用できません。 
$fp = fopen( "php://input", "rb" );
$wfp = fopen( $_GET['fn'], "wb" );

while( $ret = fread( $fp, 4096 ) ) {

	fwrite( $wfp, $ret );

}

fclose($wfp);
fclose($fp);


print $_GET['fn'] ."($file_cnt)\n";
?>
で画像が保存されました



posted by lightbox at 2011-05-22 10:41 | Firefox | このブログの読者になる | 更新情報をチェックする

Firefox4 : 複数選択ファイルアップロードの準備

Using files from web applications - MDC Docs の最初の
★ Using hidden file input elements using the click() method
に沿って、ファイルアップロード用の複数選択のファイルフィールド
を作成して、選択結果を console.log で表示しています。

※ Google Chrome での動作を確認しました
( 但し、Google Chrome の場合非表示ではダイアログが出ません )
<input
	type="file"
	id="fileElem"
	multiple="true"
	accept="image/*"
	style="display:none"
	onchange="handleFiles(this.files)"
>  
<a href="#" id="fileSelect">複数ファイルの選択</a>

<script type="text/javascript">
// ファイル選択呼び出し用のリンク
var fileSelect = document.getElementById("fileSelect");
// クリックイベントの登録
fileSelect.addEventListener("click", function(e) {
	if (fileElem) {
		fileElem.click();
	}
	e.preventDefault(); // "#" での動きをキャンセルする
}, false);

// 非表示のファイル選択フィールド
var fileElem = document.getElementById("fileElem");

// 選択時のイベント
function handleFiles(files) {
	var fileList = files;

	// Firebug で表示
	for( var i = 0; i < fileList.length; i++ ) {
		console.log(fileList[i].fileName);
	}
}
</script>


posted by lightbox at 2011-05-22 09:27 | Firefox | このブログの読者になる | 更新情報をチェックする

Canvas : 指定サイズ BOX の内側を指定の太さで線を引く

普通に BOX を Line で描こうとすると、その位置を中心として線の太さを
使うので、始点が欠けてしまいます。また、エリアいっぱいいっぱいに引こ
うとすると、線が細くなってしまうので、補正しています。

※ 指定 BOX エリアの内側を指定した太さで線を描画しています

<div id="target"><input type="button" value="指定サイズ BOX の内側を指定の太さで線を引く" onclick='drawMyBox()'><br></div>
<script type="text/javascript">
function drawMyBox() {
	var canvas = document.createElement("canvas");
	if ( ! canvas || ! canvas.getContext ) {
		return false; 
	}
	else {
		canvas.setAttribute("width", "300");
		canvas.setAttribute("height", "300");
	}
	document.getElementById("target").appendChild(canvas)
	var ctx = canvas.getContext('2d');

	box( ctx, 0, 0, 200, 300, 10 )

	function box(c,x,y,w,h,lw) {

		c.beginPath();
		c.moveTo(x+(lw/2), y+(lw/2));
		c.lineTo(x-(lw/2)+w, y+(lw/2));
		c.lineTo(x-(lw/2)+w, y-(lw/2)+h);
		c.lineTo(x+(lw/2), y-(lw/2)+h);
		c.lineTo(x+(lw/2), y);

		c.lineWidth = lw;
		c.stroke();
	}

}
</script>
関連する記事 Canvas : 角丸で、指定サイズ BOX の内側を指定の太さで線を引く
posted by lightbox at 2011-05-22 01:12 | HTML5 | このブログの読者になる | 更新情報をチェックする

2011年05月20日


IME2007 のプロパティを表示するスクリプト




Set obj = CreateObject("Shell.Application")
Set objFolder = obj.NameSpace( &h26 )
strPath = objFolder.Self.Path&"\Common Files\Microsoft Shared\IME12\IMEJP\IMJPUEX.EXE"
obj.ShellExecute(strPath)
Set obj = Nothing

他にも、システム辞書の利用オプションをチェックできるコマンドライン
アプリケーションもあります。
>IMJPUEXC ADDSYSDICT HELP
Microsoft Office IME 2007 Property Command Line Tool (12.0.6415.1000)
Copyright  (C)  2006 Microsoft Corporation.  All rights reserved.

Usage: IMJPUEXC ADDSYSDICT <Full Path to System Dictioanry File> <Option>

Option: 0       Used in none of conversion modes
Option: 1       Used in all of conversion modes


タグ:VBScript
posted by lightbox at 2011-05-20 10:55 | Microsoft Office | このブログの読者になる | 更新情報をチェックする

Office Word の「ミニツールバー」の扱い

▼ Office 2010


▼ Office 2013


選択した時に出現するミニツールバーですが、邪魔で消したい時は「ESC」で消えます。でも、再度表示したい時は、右クリックするとはっきりと表示されます。

そもそも、表示したく無い場合は Office ボタンからのオプション設定の基本設定に表示しないようするチェックがあります。

▼ Office 2010


▼ Office 2013




posted by lightbox at 2011-05-20 02:34 | Microsoft Office | このブログの読者になる | 更新情報をチェックする

2011年05月18日


イーアクセスの ADSL 構成



この構成は、イーアクセスの正式文書(技術的部分を含む)の内容をもう少し
解りやすくしたものです。

その中では以下のような但し書きがあります
イー・アクセスでは、NTT東日本もしくはNTT西日本の電話局内に
電気通信設備を設置し、NTT 地域会社の電話サービス用銅線ケー
ブル(加入者宅と収容電話局間に敷設されている銅線ケーブルを
指します。)と接続し、加入社宅へのアクセス回線として利用す
ることにより、ADSL サービスを提供します。
つまり、ADSL を実現する技術的な部分をイーアクセスが担当するので、 ADSL モデムはイーアクセス用である必要があります。これに対してNTT の ADSL は、NTT の技術で ADSL を実現します。 いずれも、電話線およびそれに付属する技術は NTT の所有であって、イ ーアクセスはそれを借りている事になります。
posted by lightbox at 2011-05-18 12:10 | 記録 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり