1

サーバーに画像を保存し、データベースにインデックスを付けて、後でユーザー名または画像をアップロードした人から収集したその他の情報で検索できるようにします。アップロード中にアップロードの場所をデータベースに保存するだけのプログラムがあると思いました。私はこれが可能であると確信していますが、私はphpへのnubieであるため、開始する場所が必要です.

4

2 に答える 2

2

ファイルのアップロードとメタデータのデータベースへの保存だけではありません。乗っ取られないように、アプリケーションを保存しておいてください。

  • フォームで画像をアップロードします。

  • メタデータをデータベースに保存する際に、壊れたアップロードや失敗したアップロードを処理する方法を確認してください。(それ以外の場合は、ガベージ コレクションのようなものを使用して、ディスク領域が不足したり、関連ファイルのないデータベース エントリが発生したりするのを回避します。)

  • 常に登録ユーザーのみがアップロードでき、セッション Cookie を使用できる必要があります

  • サーバーが有効なセッションの有効なフォームデータのみを受け入れることを確認してください!!!

  • サーバー上でウイルス スキャナーが実行されていることを確認し、可能であればスクリプトがウイルス スキャナーに反応するようにしますが、外部には表示されないようにします。

  • 名前を変更!!! サーバー上のファイル、ファイルタイプのサフィックスを削除(この情報をデータベースに保存、送信するMIMEタイプを含む)、おそらく圧縮を使用します。

  • ファイルが保存されている場所をユーザーに決して知らせないでください!!! ダウンロード スクリプトを使用して、外部へのファイル パスに関する情報を非表示にします。

編集:

これは完全なリストではなく、どのように見えるかについての印象を与えるだけです!

アップロード:

次のようなアップロードスクリプトを作成します...

  • 次のようにデータベース テーブルを作成します。

    ファイル

    uid, id, filename, real_filename, suffix, content_length, datetime_upload

    拡張子 (可能性のリスト)

    uid, id, suffix, mimetype

    ユーザー→ファイル関係

    uid, id, user_id, file_id

  • アップロードスクリプトが有効なユーザーセッションまたは終了から呼び出されていることを確認してください

  • ユーザーがデータを保存する権利 (ロール モデル) を持っているかどうか、または終了するかどうかを確認します。

  • フォームを受信し、フォームデータが有効かどうか (変数、キャプチャなど) を確認するか、終了します

  • ファイルタイプが許可されているかどうかを確認し、オプションで、最終的に保存する前にファイルのバイナリチェック (ヘッダーのファイルタイプ) および/またはウイルスチェックを行います

  • file の空のエントリを作成し、file_id を受け取ります。それ以外の場合はエラーです

  • 新しいファイル名 fe を作成

    $new_filename = $file_id . '-' . md5($old_filename);

  • データをディスクに保存する

  • 問題なく保存された場合はデータベース エントリを更新し、そうでない場合はエントリとエラーを削除します

  • user_id->file_id のエントリを保存します

ダウンロード:

次のようなダウンロードスクリプトを作成します...

  • download-script が有効なユーザーセッションまたは終了から呼び出されていることを確認してください

  • ユーザーがこのデータをダウンロードする権利を持っているかどうか (ロール モデルとユーザー -> ファイル関係) を確認するか、終了してください

  • 古いファイル名、サイズ、MIME タイプを取得して送信アクションを実行する

  • ファイルが受け入れられ、クライアント側で別のもの (fe .exe) として実行されるのを避けるために、ヘッダーに保存された MIME タイプを使用してファイルをブラウザーに送信します。正しいダウンロード ヘッダー、content-length、および caching-header を追加します。適切なファイルからバイナリ データ ストリームを追加します。

于 2012-04-26T10:32:38.567 に答える
1

手順:

AJAX アップローダーを使用するか、フォーム内の画像を選択して、ユーザー データと共に画像を保存するか、いくつかの方法があります...

しかし、AJAX の簡単なプロセスは...

  • 画像をアップロード
  • 画像名を返す
  • ユーザー参照を使用してイメージ名をデータベースに保存する
  • 検索するには - データベースから画像参照を検索して、データベース上の画像が保存されている場所に移動します

さもないと

  • 保存を押します
  • 画像をディレクトリにアップロードします
  • 転送が成功した場合は、ユーザー情報とともにファイル名を保存します
  • ユーザー参照でデータベースを検索し、そのユーザーへの画像の名前を取得します
于 2012-04-26T10:05:42.413 に答える