[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как выдрать путь из <input type="file"...
Гость_Александр
Здравствуйте увожаемые знатоки php!

Есть такой код для загрузки файла на сервер в определенную папку:

Код формы (index.php):
PHP
<html>
<
head>
  <
title>Загрузка файлов на сервер</title>
</
head>
<
body>
      <
form action="load.phpmethod="post" enctype="multipart/form-data">
      <
input type="file" name="filename"><br
      <
input type="submit" value="Загрузить"><br>
      </
form>
</
body>
</
html>


Код скрипта обработки формы (load.php):
PHP
<html>
<
head>
  <
title>Результат загрузки файла</title>
</
head>
<
body>
<?
php
     
if(copy($_FILES['filename']['tmp_name'],'temp/'$_FILES['filename']['name')) {
    echo 
'Ваш фаил успешно загружен>'; }
    else {
    echo 
'При загрузке возникли ошибки'; }
 
?><


Суть проблеммы в следующем - можно ли из
PHP
<input type="file" name="filename">

вытащить физический путь к файлу, то есть например: С:\Документы\Вася\file.doc.

Заранее спасибо!!!




Спустя 12 минут, 17 секунд (15.09.2009 - 08:36) olgatcpip написал(а):
Если оно есть то в переменой $_FILES
PHP
print_r($_FILES)

Спустя 9 минут, 5 секунд (15.09.2009 - 08:45) Гость_Александр написал(а):
Пробовал так, но физического пути на файл нема в массиве((((

Спустя 26 минут, 17 секунд (15.09.2009 - 09:11) glock18 написал(а):
1. физический путь на компьютере пользователя ты и не получишь

2. физический путь на сервере - все загружаемые файлы ложатся в temp/ который либо берется по умолчанию для сервера, либо прописывается для хоста отдельно в httpd.conf

Если тебе просто нужно переписать временный файл куда-то, то используй вместо copy функцию move_uploaded_file

Спустя 16 минут, 11 секунд (15.09.2009 - 09:28) Гость_Александр написал(а):
PHP
<html>
<
head>
  <
title>Загрузка файлов на сервер</title>
</
head>
<
body>
      <
form action="load.phpmethod="post">
      <
input type="file" name="filename"><br
      <
input type="submit" value="Загрузить"><br>
      </
form>
</
body>
</
html>


PHP
echo $filename;


Вот таким образом достать можно физический пьту к файлу, но тогда через эту форму я не смогу его загрузить на сервер(((

Можно ли сделать так, чтобы в форме выбирать файл для загрузки на сервер, а в другой форме он автоматически вводился в поле и, допустим, передавались из обоих форм в обработчик. Из первой формы загружаемый файл (/tmp\...), а из второй формы физический путь.

Спустя 1 час, 2 минуты, 19 секунд (15.09.2009 - 10:30) Гость_Александр написал(а):
К предыдущему топику - физический путь к файлу есть, а чтобы загрузить его на сервер использую
PHP
$dir $filename// это физический путь к файлу
copy("$dir","а тута путь куда загрузить и имя файла "); // копируем на сервер

Спустя 23 минуты, 41 секунда (15.09.2009 - 10:54) twin написал(а):
Цитата
Вот таким образом достать можно физический пьту к файлу

Вот таким образом ничего достать нельзя. Причины три.
1. Не указан enctype у формы.
2. Этот атрибут name="filename" в поле file является массивом. И никак echo тут не поможет.
3. Читай еще раз, что написал glock18

Спустя 2 дня, 1 час, 49 минут (17.09.2009 - 12:43) Гость_Александр написал(а):
Всем спасибо, разобрался. Оказывается я просто не понимал разницу между сервером и клиентом. Поэтому физический путь на сервере просто выдаст ошибку. Поэтому буду искать другое решение моей проблеммы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.