A、「名前+パス」をMD5でハッシュ化したものをデータベースに入れるため、管理者にもわかりません。送信もしないためオートコンプリートにも表示されません。cookie使うので、復号化されないための処理。
A、ファイル名が重複しないように乱数を足します。「1.gif」→「1_XoD.gif」のようにし、別の人が「1.gif」を上げてもそれは「1_M3v.gif」となり上書きされません。たとえばオンラインゲームの正月記念スクリーンショット(2014_0101_000000_001.jpg)など、秒までしか記録しないファイル名だと重複する可能性があります。
2015-10-30、bpg0.9.6に更新し、Adexd.netにてアッパードロップゾーンを復活。
2014/12/26、bpg0.9.4jsに置き換えたので、0.9.3のアルファ付きはデコード出来なくなった。
2014/12/19、bpgを別タブでの表示に対応。暫定とは言えちゃんと表示出来る分にはまともだと思う。
┗bpgを超暫定対応。サムネイル自体を画像にして表示自体は出来るものの、外部リンクで開くと画像認識されないし、lightboxでも無理。どうするか。
2014/11/20、ページの処理を変更して1ページに全部載せなくした。これだとlazy_load要らない気もする。
┗goo.glの短縮URLを追加。テスト時点でローカルだと400 bad requestが出るから無駄に時間かかった。→
goo.gl(Googleの短縮URLサービス)のAPIをPHPで利用する方法
2014/10/26、削除しても削除されないバグ修正(関数名変更時に変えてなかった)、拡張子が大文字だとアップロードできなかったのを出来るようにした。
┗ファイル名に付く乱数に英字も追加した。
2014/07/18、リスト表示にすると新タブに直接開けるように。
2014/06/11、画像以外のファイルもドロップ可能に。でも5メガまでだからあんま使えない。
2014/06/08、画像先読みスクリプト対策として、hrefを変更。未来サーバーの負荷の問題なので、ご了承ください。
2014/06/07、画像のマウスオーバーにツールチッププラグイン付けた。利点は画像内でマウス動かしても消えないで、常に同じ位置にある。
2014/06/02、Lazyloadから軽量版のUnveil.jsに変更。
2014/06/01、画像の遅延読み込み「Lazy load」をやめて、サムネイルにした。
┗コピーボタンが多いと、flashが重すぎたので下のバーに集約。使い方は画像の「コピー」ボタンを押すと、テキストエリアに次々入れられるので、赤くなった「コピー」ボタンを押せばまとめてコピーできる。
2014/05/31、パスワードをとりあえずMD5でハッシュ化するようにした。ハッシュ化に際してsaltを名前にしたから、名前も必須に。
2014/05/30、「%20」と「スペース」を「_」に変換するようにした。
┣リスト表示を追加。
┗jQueryを高速化した。画像表示が体感出来るくらい速くなった。
2014/05/28、styleをひとまとめにしてhtmlダイエット。
┣レンタル鯖とローカルのフォルダの解釈が若干違ってファイル消せなかったのを、絶対パスにして回避。
┣相当改良。実装したいものはほぼ全て実装できた気がする。疲れた。
┣URLコピーをワンクリックで出来るように改良。
┗まとめて削除を導入。
2014/05/27、同一ファイル上書きの抑制で、拡張子の前に3桁のランダムな数字入れるようにしてみた。
┣たぶんほぼ完成。あと細かい処理のブラッシュアップ。
┗ルートフォルダからcgi-binフォルダへの書き込みで、なぜかページ表示自体にロックがかかる謎が、cgi-binへの書き込みの権限か何かだと断定し、cgi-binフォルダ内から全て書き込むようにしたら問題なくなった。
2014/05/26、mysqlレコードの削除と同時にファイルも消すようにした。
┗
クリップボードにコピー出来るようにした。※ただし汎用性の問題で「2クリック(早過ぎるとダメかも)」しないとコピー出来ない。右クリックurlコピーとかより楽だから一応導入。あとflashコンテンツ拒否ってたら動かない。firefox30とchrome34で確認。
2014/05/24、作成開始。
参考:
dropzone.js
dropzone.js の基本的な使い方、jqueryの書き方。
ドラッグ&ドロップでファイルアップロードするJSライブラリのサンプル、phpのサンプル。
Drag and Dropでファイルを簡単にアップロードできるコンテンツを作れるDropzone.js、オプションの説明。
zClip
Tooltipster's plugin、title=""を見やすくする。
jQuery高速化!処理速度を10倍上げるテクニック20選、めっちゃ勉強になる。
jQuery-MD5、ハッシュ化。
処理のメモ:サムネイル画像を作成・保存
Unveil.jsの使い方
Preloaders generated(読み込みアイコンジェネレーター)
絶対パスに変換する関数
goo.gl(Googleの短縮URLサービス)のAPIをPHPで利用する方法
未来サーバーでアップロードが5メガまでしかできない:
Request Entity Too Largeエラーが出る。原因はLimitRequestBodyだった