Я загружаю CSV-файл на мой php-сервер с помощью этой формы:
<form action="importCSV.php" method="post" enctype="multipart/form-data">
<br>Select file: <input type="file" name="file">
<br><input type="submit" name="import" value="Import file">
</form>
И что я хочу сделать с этим файлом, это добавить его содержимое в таблицу на моем сервере MySQL.
$url=$_FILES['file']['tmp_name'];
$con = new mysqli(HOST, US, PW, BBDD);
$sql="load data local infile '" . $url. " into table users fields terminated by ':'";
$con->query($sql);
$con->close();
Проблема в том, что в папке «tmp» сервера php не появляется файл csv, но в этой строке $url=$_FILES['file']['tmp_name']
$ url имеет реальный URL с именем tmp_. Я не понимаю, что там происходит: у меня есть URL с именем tmp_name файла, но его на самом деле не существует?
Я проверил файл php.ini, и это значения для загрузки файла:
file_uploads=On
upload_tmp_dir="C:\xampp\tmp"upload_max_filesize=2M
max_file_uploads=20
Меня не беспокоит «upload_max_filesize», размер файла, который я пытаюсь загрузить, составляет всего 56 байт.
Пожалуйста, есть идеи?
Я не могу в это поверить …
Кажется, что сервер MySQL не понимает этот символ \
, Это только проблема совместимости между оперативными системами.
Решение состоит только в замене персонажа: $url= str_replace("\\", "/", $url)
,
Других решений пока нет …