sql >> データベース >  >> RDS >> Mysql

MYSQLデータベースに画像をアップロードし、PHPとSwiftを使用して表示します

    ユーザーから画像を取得する

    http://php.net/manual/en/reserved.variablesを参照してください。 files.php および http://php.net/manual/en/features.file- upload.php $_FILESの使用方法のデータについては アップロードされたものを受け取るため。

    画像を変数に入れたら、$jpgと言います。 、テキストのエンコード/デコード機能は使用しないでください。それは物事を壊すだけです。以下のさまざまなアプローチでは、8ビットコードのトリップを回避するために何をすべきかを説明します。

    画像を表示する方法は3つあり、それぞれがやや複雑です

    画像をデータベースに保存します。画像をインラインで表示

    私はサムネイルにこのアプローチを使用しましたが、大きな画像にはお勧めしません。

    MEDIUMBLOBに保存します テーブルでは、bin2hex()を使用します PHPで画像を文字列に変換します。次に、INSERT ... VALUES (UNHEX('...'))を使用します MySQLサーバー側でバイナリに切り替えます。

    リロード後、参照元のPHPに次のように言わせます

    $b64 = base64_encode($blob);
    echo "<img src='data:image/jpeg;base64,$b64'/>";
    

    画像をデータベースに保存します。画像を生成するためのPHPスクリプト

    これは、PHPの「image *」関数を使用して、表示する前に画像を変更する場合に使用します。これはおそらく必要以上に複雑なので、必要なことだけをざっと見ていきます。

    ページのhtmlは、必要な引数を使用して別のスクリプトを呼び出します。

    <img src=modify.php?this=stuff&that=stuff>
    

    次に、modify.phpで 、から始める

    header('Content-type: image/jpeg');
    

    そしてこれで終わります(JPEGを構築していると仮定します):

    imagejpeg($im);
    

    画像をファイルに保存する

    これは、ほとんどの大規模なWebサイトがほとんどの場合それを行うための好ましい方法です。

    ファイルがアップロードからのものである場合、このようなものは、jpgに触れることなくファイルをより良いパスに移動します。

    $tmpfile = $_FILES['userfile']['tmp_name'];
    move_uploaded_file($tmpfile, $uploadfile);
    

    詳細と例: http://php.net/manual/ en / function.move-uploaded-file.php

    HTMLで、次のようなものを生成するだけです:

    <img src=path/to/file>
    

    サーバーのパスのどこに画像を配置できるかを調査し、権限が適切であることを確認してください。

    注:データベースは画像の保持には関与しませんが、代わりにURL "path/to/file"を保持するための列があります。 :

    image VARCHAR(255) NOT NULL
    

    詳細については

    • 3つのテクニックのうち、深く掘り下げたいのはどれですか?
    • 生成しているHTMLを見てみましょう。
    • SHOW CREATE TABLEを見てみましょう 。


    1. SQuirrelSQLクライアントをインストールする方法

    2. ResultSetを閉じた後の操作は許可されません(mysql、java)

    3. 価格のフロートまたは小数?

    4. MySQLネイティブドライバーとMySQLクライアントライブラリの違い