そよ風情報局 -初心者プログラマが独学で試行錯誤-

Webエンジニア目指して勉強中の初心者が、苦労したことや学んだ言語について書いてます。たまにゲームのことも。

プログラミング

PHPでアップローダ作ってます

更新日:



昨日からアップローダを作り始めました。

その仕組みをざっくり簡単に説明していこうかなと思います。

アップロードの流れを書くとこんな感じです。

1. ファイル選択
2. アップロードボタンをクリックすることでPOST
3. POSTを受け取ったらファイル名を保存用に変更
4. そのファイルをダウンロードするためのURLを生成
5. ファイル名、日付、URLをDBに登録
6. 正常に処理が完了したらダウンロード用URLを表示

ざっくりこんな感じです。

逆にダウンロードの流れは、

1. URLにアクセス
2. URLをDBから探し出す
3. 見つけたURLの登録日時と現在の日時を比較
4. 有効期限内ならダウンロード開始

こんな感じです。
よくある会員登録しなくても有効期限内だけ使えるよってタイプのアップローダです。
一応ファイルサイズ制限は150MB、有効期限は1週間にしようかなと考えてます。
有効期限過ぎたら自動で削除できたらいいんですけど、やり方わからないので、苦肉の策として有効期限チェックしてダウンロード処理をするかどうかって作りにしてます(´・ω・`)
まぁ多分手動でも十分間に合うだろうと踏んではいます。

あとはダウンロードページだけ作れば完成ってところまではできてるんですけど、そのダウンロードさせる部分で躓いてます。。。
ファイルの保存って今保存用の名前に付け替えて保存してるんですよね。
(サーバに同じファイル名があったら困るため)
そしてダウンロードするときには元の名前に付け替えたいんですけど、その処理がよくわからず・・・
header関数?使ってdownload-forceってすれば名前指定してダウンロードってできるんですけど、これブラウザ次第ではうまく動作しなかったりするんですよ。
試したのだとアップロードして生成したURLをLINEで送信して、LINEからURLクリックして開こうとするとエラー出るんですよね(´・ω・`)
headerがよくまだわかってないのが多分問題。。。

だから、できればa href使ってクリックしたらダウンロードって感じにしたいんですけど、そうすると名前変更どうしようかなーと。
クリックしたらtmpファイルみたいなところに一旦コピーして、そこで名前変更してダウンロードってすればできなくはないですけど、処理遅くなりそうでなんかなーって。
どうすればスマートにできるんだろう・・・

完成したらいろんな人に使って欲しいですし、もう少し見た目も何とかしたい(´・ω・`)
最低限のことしかページに書いてないからあっさりしすぎてるんですよね。
広告でも貼ればもう少しそれっぽくなるのかな。。。







-プログラミング
-,

Copyright© そよ風情報局 -初心者プログラマが独学で試行錯誤- , 2018 All Rights Reserved Powered by STINGER.