Member 13613533 Ответов: 1

Загружать фотографии в том же ID не работает, давая путь вместо картинки?


Я пытаюсь загрузить фотографии в базу данных в виде большого двоичного объекта. Всякий раз, когда я использую свой текущий скрипт, он помещает путь к файлу в BLOB-объект вместо файла jpg. Я проверил это, изменив blob на text.

Это то, что я сейчас получаю всякий раз, когда пытаюсь загрузить фотографию:

C:\xamppv2\tmp\php249C.tmp

В настоящее время я использую ['tmp_name'], и я думаю, что это причина этой проблемы. Мне было интересно, что я должен изменить.

Вот мой код

$tipe_file1    = $_FILES['image1']['tmp_name'];
$tipe_file2    = $_FILES['image2']['tmp_name'];
$tipe_file3    = $_FILES['image3']['tmp_name'];
$tipe_file4    = $_FILES['image4']['tmp_name'];
$prijs = $_POST['prijs'];
$naam = $_POST['fname'];
$beschrijving = $_POST['desc'];
$maat1 = $_POST['maat1'];
$maat2 = $_POST['maat2'];
$maat3 = $_POST['maat3'];
$maat4 = $_POST['maat4'];

    $aMyUploads = array();
    foreach ($_FILES as $aFile) {
        if(0 === $aFile['error']){
            $newLocation = ''.$aFile['tmp_name'];
            if(0 === $aFile['error'] && (false !== move_uploaded_file($aFile['tmp_name'], $newLocation))){
                $aMyUploads[] = $newLocation;

            } else {
                $aMyUploads[] = '';
            }
        }
    }
    $stmt = $conn->prepare("INSERT INTO `producten` (naam, beschrijving, prijs, maat1, maat2, maat3, maat4, image1, image2, image3, image4) VALUES
    (:naam, :beschrijving, :prijs, :maat1, :maat2, :maat3, :maat4, :image1, :image2, :image3, :image4)");
    $stmt->execute(array(":naam"=>$naam, ":beschrijving"=>$beschrijving, ":prijs"=>$prijs, ":maat1"=>$maat1, ":maat2"=>$maat2, ":maat3"=>$maat3, ":maat4"=>$maat4, ":image1"=>$aMyUploads[0], ":image2"=>$aMyUploads[1], ":image3"=>$aMyUploads[2], ":image4"=>$aMyUploads[3]));


Что я уже пробовал:

см. выше, я проверил это путем изменения BLOB-объектов в текст.

1 Ответов

Рейтинг:
7

Jochen Arndt

Ваш код передает имена файлов в базу данных. Вы должны передать файл содержание вместо.

Вы можете использовать PHP: file_get_contents - руководство пользователя[^] метод, чтобы получить это в строковую переменную:

$file_content1 = file_get_contents($aMyUploads[0]);
и передайте это как параметр.