2

insert.phpデータベースに保存するために、フォームの値をファイルに取得する必要があります。ただし、フォームの要素の 1 つは、JPG またはその他のファイル形式で画像ファイルをアップロードするためのファイル選択ダイアログです。

投稿リクエストを介して画像を送信するためにこのコードをオンラインで見つけましたが、正しく機能させることができません

$pic=($_FILES['photo'][image']); 

実際のファイル自体ではなく、ファイルの名前のみが表示されます

4

1 に答える 1

4

まず、enctype属性を HTML フォームに追加する必要があります。このような:

<form action="page.php" method="post" accept-charset="utf-8" enctype="multipart/form-data">
    <input type="file" name="photo" id="photo" />
    <input type="submit" value="Upload" />
</form>

次に、これが次のページで送信されるときに、$_FILES配列の代わりにグローバル配列$_POSTを使用して画像を取得します。

<?php
    move_uploaded_file( $_FILES['photo']['tmp_name'], "/var/www/image.jpg" );
    echo("<img src='image.jpg'");
?>

すべてのテキスト データは を使用して送信され$_POSTますが、ファイルは を使用して転送されます$_FILES

編集:このアップロードされたデータをテーブルにさらに挿入したい場合(ただし、これは決して推奨されず、パフォーマンスが大幅に低下します)

$image = file_get_contents( "/var/www/image.jpg" );
$image = addslashes( $image );
...
$sql = "INSERT INTO pictures(image) VALUES('" . $image . "')";
//remaining MySQL and PHP code

注:ここでは、Linux マシンで/var/wwwデフォルトのlocalhostとして構成されている Web フォルダーを考えています。

于 2012-07-21T08:42:25.543 に答える