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

Форум PHP

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

 

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

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

тема: Загрузка файлов на сервер
 
 автор: m   (18.04.2005 в 15:19)   письмо автору
 
 

ЕСть код



if(copy ($href,$patchandimg))
{
$Text=$Text."File load";
}
else
{
$Text=$Text."File not load <br>htef=$href <br>patchandimg=$patchandimg";
}

В результате
File not load
htef=C:\Documents and Settings\MaximPr\My Documents\ya.jpg
patchandimg=NewsContent/ya.jpg

Папка NewsContent находиться в том же каталоге что и php-ный файл.
Ни каких форм для загрузки не использую.Если в окне браузера задать строку
C:\Documents and Settings\MaximPr\My Documents\ya.jpg
то браузер отображает картинку, то есть путь и имя прописан верно.

   
 
 автор: cheops   (18.04.2005 в 22:58)   письмо автору
 
   для: m   (18.04.2005 в 15:19)
 

А Apache из под какого пользователя запущен? И есть ли у этого пользователя права доступа к этим директориям? Кстати, какая версия PHP?

   
 
 автор: m   (21.04.2005 в 16:32)   письмо автору
 
   для: cheops   (18.04.2005 в 22:58)
 

PHP 4.3.10
У пользователей есть доступ к этим файлам

   
 
 автор: cheops   (21.04.2005 в 22:51)   письмо автору
 
   для: m   (21.04.2005 в 16:32)
 

У вас указана строка
htef=C:\Documents and Settings\MaximPr\My Documents\ya.jpg

имя htef не совпадает с href - это опечатка или ошибка в этом. На указанной вами конфигурации (Apache 1.3.33) следующий скрипт отработал на ура
<?php
  $href 
"C:\Documents and Settings\MaximPr\My Documents\ya.jpg";
  
$patchandimg "NewsContent/ya.jpg";
  if(
copy ($href,$patchandimg)) 
  { 
    
$Text=$Text."File load"
  } 
  else 
  { 
    
$Text=$Text."File not load <br>htef=$href <br>patchandimg=$patchandimg"
  }
  echo 
$Text;
?>

Не могли бы вы тоже привести полностью скрипт, чтобы можно было воспроизвести ситуацию?

   
 
 автор: m   (25.04.2005 в 16:46)   письмо автору
 
   для: cheops   (21.04.2005 в 22:51)
 

Цель скрипта такая: Пользователь ввносит в окно формы текст HTML, в кот. все ссылки имеют абсолютные пути на картинки на лок машине
Текст к примеру может быть таким
<img alt="Логотип" src="file:///C:/logotip.gif"
style="width: 50px; height: 70px;">

В результате работы скрипта он жолжен быть изменён на
<img alt="Логотип" src="NewsContent/logotip.gif"
style="width: 50px; height: 70px;">
и на сервер в папку NewsContent/ должна быть скопирована картинка logotip.gif
и к изменённому тексту прибавится фраза о результате закачки
Врезультате же я получаю
<img alt="Логотип" src="NewsContent/logotip.gif"
style="width: 50px; height: 70px;">
File not load <br>htef=C:\logotip.gif <br>patchandimg=NewsContent/logotip.gif
и файл не загружен

*******************************************************************************************

Вот форма
<form name="News" id="News" action="add.php" method="post">
<textarea name="Text" id="Text"></textarea>
</form>

add.php

$i=0; //счётчик для цикла
$Text_href='src="file:'; 
$patch='NewsContent/';
$Text_href_length=strlen($Text_href);  
$vhpzhdenie=substr_count($Text,$Text_href); //кол-во картинок в тексте
while($i < $vhpzhdenie)
{
$hrefB=strpos($Text,$Text_href)+5; //позиция начала текста ссылки
$hrefE=strpos($Text,'"',$hrefB+$Text_href_length); // позиция конца текста ссылки
$hrefL=$hrefE-$hrefB;  //длина текста ссылки
$href=substr($Text,$hrefB,$hrefL); //текст ссылки
$img_pos=strrpos($href,"/"); 
$img=substr($href,$img_pos+1);// название картинки
$patchandimg="$patch"."$img"; // то где будет лежать наша картинка
$Text=str_replace("$href","$patchandimg","$Text"); //находим в тексте адрес картинки на локальной машине и заменяем его на адрес на сервере
//////////////////////////// load Img ////////////////////////////////
$href=substr($href,8); 
$href=str_replace('/','\\',"$href"); 
$href=str_replace('|',':',"$href");
$href=str_replace('%20',' ',"$href");
if(copy ($href,$patchandimg)) // копируем файл из $href-адреса на лок.машине в папку NewsContent/ на сервере
{
$Text=$Text."File load"; // добавляем к тексту страницы сообщение что загрузка прошла успешно
}
else
{
$Text=$Text."File not load <br>htef=$href <br>patchandimg=$patchandimg"; // добавляем к тексту страницы сообщение что загрузка не прошла 
}
///////////////////////////////////////////////////////////////////////
$i++;
}
echo '$Text';

   
Rambler's Top100
вверх

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