SQL-запрос и временные права доступа к файлу

Я пытаюсь импортировать файл .csv в базу данных MySQL, используя HTML / PHP. Код является:

HTML

<form method="post" action="" enctype="multipart/form-data">
File: <input type="file" name="csv">
<input type="submit" value="Send" name="subCSV">
</form>

PHP

$file = $_FILES["csv"]["tmp_name"];

try {
$query = $connexion -> prepare("LOAD DATA INFILE ? into TABLE myTable FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\r\\n' IGNORE 1 ROWS");
$query->bindValue(1, $file, PDO::PARAM_STR);
$query->execute();
} catch(PDOException $e) { echo $e->getMessage(); $errorCode = $e->getCode();

Но я получаю эту ошибку:

File '/tmp/phpl8eY59' not found (Errcode: 13)

Указание файла явно работает. Разрешения в порядке, пользователь, использующий Apache, и владелец файла идентичны. Я предоставил разрешение на файл пользователю базы данных.

Очевидно, что настройка AppArmor решит проблему, но я ее не использую, так как она не установлена ​​на моем сервере.

1

Решение

Вы можете попробовать использовать «LOAD DATA LOCAL INFILE». Смотрите, например, ответ здесь: ЗАГРУЗКА ДАННЫХ INFILE не работает. Проблема в том, что, похоже, существуют различные причины этой проблемы.

0

Другие решения

Я решил проблему с этим:

chmod($file, 0644);

Пользователь Apache / PHP и пользователь MySQL не были одинаковыми.

0

По вопросам рекламы [email protected]