Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как занести путь где лежит файл в базу данных
 
 автор: Dimich   (29.11.2007 в 23:52)   письмо автору
 
 

Есть папки с файлами, надо занести в базу путь к этим файлам.
То есть, как вытянуть в переменную путь к файлу?

Подскажине пожалуйста, как это можно сделать или намекните где посмотреть?
Спасибо!

   
 
 автор: Dimich   (30.11.2007 в 00:28)   письмо автору
 
   для: Dimich   (29.11.2007 в 23:52)
 

Сдесь http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=18747 нашел следующее:
"есть

<INPUT type="file" name="path">

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

<a href = "<? echo $myrow["Path"]?>" target=_blank><? echo $myrow["Path"]?></a>

)."

Вопрос: Как вытянуть путь к файлу отсюда:

<INPUT type="file" name="path">

   
 
 автор: moonfox   (30.11.2007 в 00:29)   письмо автору
 
   для: Dimich   (29.11.2007 в 23:52)
 

<INPUT type="file" name="path">
атрибуты поля...



pathinfo() ;



<?php
//$path = pathinfo('/www/htdocs/index.html');

$path=pathinfo($_POST['path']);

echo 
$path['dirname'], "\n";
echo 
$path['basename'], "\n";
echo 
$path['extension'], "\n";
?>

   
 
 автор: Dimich   (30.11.2007 в 00:44)   письмо автору
 
   для: moonfox   (30.11.2007 в 00:29)
 

Мне непонятно как получить "/www/htdocs/index.html" в переменную...

Мне не нужно перместить файл, нужно только записать его путь...

   
 
 автор: moonfox   (30.11.2007 в 00:50)   письмо автору
 
   для: Dimich   (30.11.2007 в 00:44)
 

есть поле как в вашем примере
<INPUT type="file" name="path">
- поле для закачки
у него есть имя = path

вот скрипт который берет строку из этого поля .... делаете дальше что вам нужно
<?php
$path=pathinfo($_POST['path']);

echo $path['dirname'], "\n";
echo $path['basename'], "\n";
echo $path['extension'], "\n";
?>

у вас же обращение гдето как то идет к этим файлам.. в противном случае если нужен только путь то поместите что то типа $p='pic/pic/';
в переменную и пищите это в базу

   
 
 автор: Dimich   (30.11.2007 в 01:09)   письмо автору
 
   для: moonfox   (30.11.2007 в 00:50)
 

Понял. Попробовал.
Скрипт не выдает ничего.. только переносит 3 раза строки...
Файл на диске С. Конкретная переменная вот эта:

$path = "C:\wos\www\pdf_temp\Hill et al_2006 J Neurosci 26_6172.pdf"


Могут бы быть проблемой обратные слэши и пропуски в имени файла?

   
 
 автор: Trianon   (30.11.2007 в 01:23)   письмо автору
 
   для: Dimich   (30.11.2007 в 01:09)
 

.

   
 
 автор: Dimich   (30.11.2007 в 01:50)   письмо автору
 
   для: Trianon   (30.11.2007 в 01:23)
 

??

Функция

$path = pathinfo($_POST['path']);

отлично берет переменную из элемента

<Input Type="text" Name=path Value="">


Однако не работает с элементом

<input type="file" name="path">

Почему??
И есть ли другой метод получить путь к файлу из <input type="file" name="path">

   
 
 автор: sim5   (30.11.2007 в 09:11)   письмо автору
 
   для: Dimich   (30.11.2007 в 01:50)
 

Вы где пытаетесь узнать путь файла элемента type="file", у себя на сервере по его получению? Вы думаете, что вам файл закачивается со всеми путями клиента? Если вас это интересует, то это нужно узнавать на стороне клиента через JS и передавать на сервер.

   
 
 автор: Dimich   (30.11.2007 в 10:08)   письмо автору
 
   для: sim5   (30.11.2007 в 09:11)
 

Я все делаю на локалхост.
Задача кажется до безумия простой, однако не получается:

Я написал базу данных для хранения и использования ПДФ файлов (научные статьи), которую я храню и пользую на локалхосте. Скрипт перемещает ПДФ файлы из временной папки, куда я их скачиваю, в постоянную папку, переименовывает их и новое имя (дата на момент скачивания) заносит в базу. Псе файлы при этом можно достать только через базу данных. Мне это не удобно.
Я же хочу переделать так, чтобы абсолютный путь к временной папке просто заносился в базу. При этом я не хочу копировать в ручную путь из винд-эксплорера, а хочу указать путь через елемент <INPUT type=file name=path> потому что это удобно. Я не могу подставить в базу что то вроде /pdf/pdf/ потому что каталог имеет разветвленную логическую струстуру.

Неужели нету способа получить полную строку пути из элемента <INPUT type=file name=path>???

   
 
 автор: sim5   (30.11.2007 в 10:34)   письмо автору
 
   для: Dimich   (30.11.2007 в 10:08)
 

<INPUT type=file name=path> никогда не передаст на сервер путь файла по которому он был получен! Узнать его и передать можно можно, но не из эелемента типа FILE, а через другой, скрытый эелемент:


<INPUT TYPE="file" NAME="file" ONCHANGE="this.form.path.value = this.value">
<INPUT TYPE="hidden" NAME="path" >
//в РНР
<?
$_POST
['path'содержит путь файла у клиента
?>

   
 
 автор: Dimich   (30.11.2007 в 10:44)   письмо автору
 
   для: sim5   (30.11.2007 в 10:34)
 

СПАСИБО огромное!! РАБОТАЕТ!!

   
 
 автор: moonfox   (30.11.2007 в 11:50)   письмо автору
 
   для: Dimich   (30.11.2007 в 10:44)
 

хм..
enctype="multipart/form-data"
и
pathinfo();

не работают вместе....

   
 
 автор: sim5   (30.11.2007 в 11:52)   письмо автору
 
   для: moonfox   (30.11.2007 в 11:50)
 

А что вы пытаетесь узнать?

   
 
 автор: moonfox   (30.11.2007 в 11:59)   письмо автору
 
   для: sim5   (30.11.2007 в 11:52)
 

я то ничего, просто выяснилося что не срабатывает....
как выяснилося у товарища создавшего этот пост.
.................................
без мультипарт не закачивает а с ней не выдает pathinfo

или/... ?

   
 
 автор: sim5   (30.11.2007 в 12:04)   письмо автору
 
   для: moonfox   (30.11.2007 в 11:59)
 

Если вы пытаетесь (как и автор темы) узнать путь к файлу у клиента, то $_FILES['userfile']['name'] - это оригинальное имя файла на клиентской машине, а не его полный путь. Передать же файл на сервер без установки в форме ENCTYPE="multipart/form-data", не получиться.

   
 
 автор: moonfox   (30.11.2007 в 12:08)   письмо автору
 
   для: sim5   (30.11.2007 в 12:04)
 

да это можно наблюдать использовав echo
вопрос почему pathinfo с ENCTYPE="multipart/form-data не срабатывает ?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования