Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выдрать путь из <input type="file"... 
:(
    Опции темы
Beast45
Дата 15.9.2009, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Здравствуйте увожаемые знатоки php!

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

Код формы (index.php):

Код

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


Код скрипта обработки формы (load.php):

Код

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


Суть проблеммы в следующем - можно ли из 
Код
<input type="file" name="filename">
 вытащить физический путь к файлу, то есть например: С:\Документы\Вася\file.doc.

Заранее спасибо!!!
PM MAIL   Вверх
Veve
Дата 15.9.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 1.1.2005
Где: Латвия, Рига

Репутация: 3
Всего: 13



Пользуйся функцией print_r( ); для вывода содержимого массива: 
Код

print_r($_FILES['filename']);

тогда сможешь увидеть, что интересующая тебя информация находится след. образом:
Код

echo $_FILES['filename']['tmp_name'];

PM MAIL ICQ Skype MSN   Вверх
brother79
Дата 15.9.2009, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



А ты его не вытащишь. Оно же заливается в посте на сервер, там во временный файл запихивается. Это только если js скриптом глянуть что там в инпуте делается, перед отправкой на сервер




--------------------
PM MAIL WWW   Вверх
Beast45
Дата 15.9.2009, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Код

echo $_FILES['filename']['tmp_name'];


Это выводит /tmp\php7.tmp

Если нельзя вытащить этот путь, можно ли как нибудь обойти это решение?

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

Добавлено через 7 минут и 10 секунд
Физический путь нужен для дальнейшей обработки файла локально через php (тобишь его конвертация и занесение упрощенного кода в БД)

Добавлено через 12 минут и 45 секунд
пробовал без  атрибута формы enctype="multipart/form-data", тогда путь к файлу достается нормально, а вот сам файл не загружается на сервер((

Можно сделать так чтобы при выборе файла (Обзор...) оно автоматически заносилось в две формы, чтобы не вводить его дважды....
PM MAIL   Вверх
lelik133
Дата 15.9.2009, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



можно средствами js, обрабатывать событие onchange
PM ICQ   Вверх
Beast45
Дата 15.9.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



lelik133, можешь привести примерчик обработчика события onchange
PM MAIL   Вверх
Ипатьев
Дата 15.9.2009, 09:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Планировать свои веб-приложения надо с учетом реального положения дел, а не фантастических представлений.
Сервер не знает о клиенте ни-че-го. 
Следовательно, "дальнейшую обработку файла локально через php" с учетом "физического пути" на клиенте не надо было планировать изначально.
А сейчас надо переделывать, а не биться головой о заведомо нереальный вариант.
Учитывая, что миллионы веб-сайтов во всем мире как-то обходятся без такой жизненно необходимой информации, как "физический путь" загружаемого файла, я уверен, что решение найдется и здесь.


Это сообщение отредактировал(а) Ипатьев - 15.9.2009, 09:04
PM MAIL   Вверх
Beast45
Дата 15.9.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Мне и не требуется, чтобы сервер знал, физический путь этого файла.
У меня происходит два действия с одним и тем же файлом:
1. Загрузка файла на сервер.
2. Скрипт вытаскивания из Word'овского документа чистого кода для дальнейшего вывода его на страничку сайта через БД. (но для этого нужен физический адрес, чтобы на локальном компе прошли все необходимые преобразования).

По отдельности работает и то и другое. Можно конечно сделать две формы для указания одного и тогоже файла для работы по двум направлениям, но получится некрасиво(((
PM MAIL   Вверх
Ипатьев
Дата 15.9.2009, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Если все нужные операции происходят локально. То. Почему. Вопрос. Задан. В. Разделе. "PHP: Общие вопросы"?
PM MAIL   Вверх
Beast45
Дата 15.9.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Извини, если не там тему создал, но не часто обращаюсь с вопросами, поэтому и создал в разделе ОБЩИЕ ВОПРОСЫ

Добавлено через 3 минуты и 36 секунд
Код

<html>
<head>
  <title>Загрузка файлов на сервер</title>
</head>
<body>
      <form action="load.php" method="post">
      <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html> 


Код

echo $filename; 


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

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

lelik133 предложил использование onchange, помагите, что нужно прописать?
PM MAIL   Вверх
Ипатьев
Дата 15.9.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Дело не в том, в каком разделе тема создана.
А в том, о чем человек думает, когда что-то делает.
Тема создана в разделе "общие вопросы по PHP". А к локальному компьютеру РНР не имеет никакого, ни малейшего отношения.

Это, хотя бы, понятно?

Перед тем, как что-то делать, сначала надо подумать.
Так вот сейчас надо спрашивать не "что нужно прописать", а "о чем мне подумать".

Что означает загадочная фраза "чтобы на локальном компе прошли все необходимые преобразования"?
Что за комп? Что за преобразования?


Это сообщение отредактировал(а) Ипатьев - 15.9.2009, 09:43
PM MAIL   Вверх
bars80080
Дата 15.9.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Beast45, ответьте пожалуйста на один вопрос: ваш локальный комп на котором должны происходить операции с вордовским документом - это сервер ,на который происходит загрузка документа или это компьютер пользователя, на которов вы хотите провести все операции и сохранить изменения?
PM MAIL WWW   Вверх
Beast45
Дата 15.9.2009, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Ребята, то что я написал локальные преобразования, поясню. Через php у меня организовано загрузка Word, открытие документа, обработка , сохранение и все это конечно же производится на обычном домашнем компе. То есть так называемый doc2html. Для этого необходимо указывать полный путь, где у меня на компе находится этот файл.

И этот же файл мне нужно еще и загрузить на сервер.

Так что, на счет "о чем мне подумать" - это не в тему, все уже обдумано и реализовано.

Добавлено через 6 минут и 47 секунд
Код формы (index.php):
Код

<html>
<head>
  <title>Загрузка файлов на сервер</title>
</head>
<body>
      <form action="load.php" method="post">
      <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html> 


Код скрипта обработки формы (load.php):
Код

$dir = $filename; // это физический путь к файлу
copy("$dir","а тута путь куда загрузить и имя файла "); // копируем на сервер


Вроде бы вот так должно прокатить
PM MAIL   Вверх
bars80080
Дата 15.9.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Beast45 @  15.9.2009,  10:12 Найти цитируемый пост)
все уже обдумано и реализовано. 

откуда тогда вопросы?



Beast45, даже если у вас и пользователь и сервер в одном комплекте на одном компе, смешение клиентских и серверных путей ни к чему хорошему не приведёт. делайте как все - загрузили файл на сервер, переместили его в нужню вам директорию, так и оперируйте с полученным серверным путём.

Это сообщение отредактировал(а) bars80080 - 15.9.2009, 10:21
PM MAIL WWW   Вверх
Beast45
Дата 15.9.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Скажите, не будит проблемм с таким копирование на сервер?

Добавлено через 1 минуту и 24 секунды
пользователь и сервер ни в коем случае не в одном комплекте 
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0837 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.