Что мешает загрузить файл - PullRequest
0 голосов
/ 12 февраля 2019

В моем коде у меня есть файл ввода, который я использую вместе с textareas, моя HTML-форма выглядит следующим образом:

<form action="includes/listing1.inc.php" method="post" enctype="multipart/form-data">
<input type="file" name="image_file">
<textarea name="title" cols="30" rows="2" placeholder="Title"></textarea>
<textarea name="description" cols="50" rows="5" placeholder="Description"></textarea>
<textarea name="price" cols="5" rows="1" placeholder="Price"></textarea>
<select multiple="multiple" name="categories">
  <option value="bla1">bla1</option>
  <option value="bla2">bla2</option>
  <option value="bla3">bla3</option>
  <option value="bla4">bla4</option>
  <option value="bla5">bla5</option>
</select>
<input type="hidden" name="vendor" value="<?php $_SESSION['UserUid']; ?>">
<input type="submit" name="listpost-submit" value="Post listing">

Обратите внимание, у меня есть файл ввода и enctype="multipart/form-data", у меня есть этот код PHP:

    <?php

    if (isset($_POST['listpost-submit'])) {

            require 'dbh.inc.php';

$filename = $_FILES['image_file']['name'];
$target = 'site_images/';
$filetarget = $target.$filename;
$tempfilename = $_FILES['image_file']['name'];
$title = $_POST['title'];
$description = $_POST['description'];
$price = $_POST['price'];
$cat = $_POST['categories'];
$vendor = $_POST['vendor'];
$result = move_uploaded_file($tempfilename, $filetarget);

if ($result == true) {
    echo '<div>Your file has been uploaded!</div>';
    $sql = "INSERT INTO listings 
 (`image`,`title`,`description`,`price`,`category`,`vendor`,`imgpath`) 
VALUES ('$filename', '$title', '$description', '$price', '$cat', '$vendor', 
'$filetarget')";
header("Location: ../index.php?listing=posted");
exit();
}
elseif (empty($title) || empty($description) || empty($price) || empty($cat) 
|| $vendor) {
    echo '<div>Something is missing!</div>';
    exit();
}
else {
    echo '<div>There was a problem uploading your file!</div>';
    exit();
}
}
mysqli_close($conn);

Структура базы данных:

idListings(int) imgListings(varchar(200))   titleListings   descriptionListings priceListings   categoryListings    vendorListings  imgpathListings(varchar(250))

В настоящий момент, если я запусту код, он скажет мне, что файл не может быть загруженЯ попытался изменить файл без пробелов между ними, но это тоже не сработало, мой вопрос: как я могу это исправить, чтобы все файлы могли храниться в базе данных.Скажите, пожалуйста, если информация неадекватна!

1 Ответ

0 голосов
/ 12 февраля 2019

Нашел это.Вам необходимо использовать индекс tmp_name, который является исходным именем файла в папке / tmp.

Изменить с:

$tempfilename = $_FILES['image_file']['name'];

На:

$tempfilename = $_FILES['image_file']['tmp_name'];

Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...