Intereting Posts
Повторный запуск последнего неудачного теста в PHPUnit Вызов формы вызова из функции php на той же странице Анализ HTML в PHP Улавливание ошибки подключения mysql exec () работает медленнее в PHP – такая же команда работает намного быстрее в интерактивном режиме Проблема синтаксического анализа RSS с помощью скрипта PHP Как сделать 644 файлов разрешений доступными для записи на PHP? PHP mcrypt_decrypt – могу ли я определить, расшифровывается ли информация с помощью правой клавиши? Ускорение проверки XML-схемы пакета XML-файлов по той же схеме XML (XSD) Получение ошибки 324 (net :: ERR_EMPTY_RESPONSE). при использовании memcache в kohana Уведомление и PHP + MySQL дизайн Потоковая передача PDF в iframe с использованием dataurl – работает только в Chrome Публикация сообщения на стене пользователя приложением facebook PHP: вопрос о расшифровке Json Вывод строки из командной строки Windows из PHP

Как получить путь к файлу в html <input type = "file"> в PHP?

Может ли кто-нибудь рассказать мне, как получить путь к файлу с помощью html <input type="file"> в PHP?

Вот мои коды:

index.php

 <form action="csv_to_database.php" method="get" > <input type="file" name="csv_file" /> <input type="submit" name="upload" value="Upload" /> </form> 

и в csv_to_database.php

 <?php if (isset($_GET['csv_file'])) { $row = 1; if (($handle = fopen($_GET['csv_file'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num fields in line $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } } ?> 

Моя проблема заключается в том, что она работает только тогда, когда данные csv находятся в том же каталоге, что и мои php-файлы. Я думаю, мне нужно получить путь к файлу, но я не знаю, как это сделать.

Вы не должны просто использовать $_GET который у вас есть сейчас. Ваш файл находится в $_FILES["csv_file"]["tmp_name"] .

Лучше всего вы просмотрите этот учебник , который в основном говорит, что вам нужно сделать что-то вроде этого:

 <?php if ($_FILES["csv_file"]["error"] > 0) { echo "Error: " . $_FILES["csv_file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["csv_file"]["name"] . "<br />"; echo "Type: " . $_FILES["csv_file"]["type"] . "<br />"; echo "Size: " . ($_FILES["csv_file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["csv_file"]["tmp_name"]; } ?> 

И вы можете идти оттуда. Используйте move_uploaded_file если вы хотите переместить файл из временного местоположения, также объясненного в учебнике 🙂

Я думаю, вы получите много от того, чтобы взглянуть на следующую ссылку: загрузка POST-метода .

Прежде всего, вы должны изменить свой метод формы для post и добавить enctype="multipart/form-data" .

Затем вы можете получить временный путь к файлу из $_FILES['csv_file']['tmp_name'] .

В вашем вызове fopen используйте $_GET['csv_file']['tmp_name'] – это указывает на файл на сервере сразу после загрузки.