0

テキストと画像をデータベースとフォルダーにアップロードするためのコードを作成しました。数日前、一意の ID を作成して挿入する方法を考えていました。私はそれを考え出しましたが、コードは画像をデータベースにアップロードせず、フォルダーにのみアップロードします。

<?php
if (isset($_FILES['files'])) {
    $errors = array();
    foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
        $file_name = $key . $_FILES['files']['name'][$key];
        $file_size = $_FILES['files']['size'][$key];
        $file_tmp  = $_FILES['files']['tmp_name'][$key];
        $file_type = $_FILES['files']['type'][$key];
        if ($file_size > 2097152) {
            $errors[] = 'File size must be less than 2 MB';
        }
        $query = "
            INSERT INTO image_area2
                ('id',`name`,`path`,`unique_id`)
            VALUES
                ('','$file_name','uploads/$file_name','$_POST[un_id]');
        ";

画像をデータベースに挿入するためのコードは問題ないようですが、機能せず、理解できません。事前に助けてくれてありがとう。

あなたがそれをよりよく見ることができるように、これまでの私の答え:

  • 問題は、最も奇妙なことであるエラーがないことです。テキストをデータベースに挿入し、画像をフォルダーに挿入すると完全に機能しますが、パスと名前はデータベースに挿入されません。そして、挿入のコードは問題ないと思いますが、なぜそれが行われないのかわかりません。print_r($query) 関数を使用して、コードがフォームから情報を受信して​​いるかどうか、およびそれを受信して​​いるかどうかを確認しました。

  • さて、mysql_query($query); を追加しました。テキストをデータベースに追加し、画像をフォルダーに追加しましたが、画像については何も追加しませんでした。$_FILES['files']['tmp_name'] 私はそれを使用して名前、tmp 名のサイズとタイプを定義して取得し、それらを配列 $file_name、$file_size、$file_type および $file_tmp に入れました

  • 一度投稿したIDをクリアしましたが、奇妙なことに、1つの画像を追加し、そこのデータベースに同じ画像の2行があり、新しいテキストと新しい画像を再度追加したい場合は追加しません動作しない 1 つ以上の画像がフォルダーにのみ追加されます。

解決済み: 問題は 2 つの手順で解決されました。つまり、私はそのように 'id' と書かれていましたが、それはとにかく必要ではなく、2 番目に WAMP サーバーに問題があり、削除されて変更されました。ご協力ありがとうございます:)

4

1 に答える 1