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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> считывание файла с сайта с последующей записью 
:(
    Опции темы
supervladislav
Дата 28.12.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



Скажите пожалуйста есть скрипт ,который переливает jpeg файлы с одного сайта на другой подскажите почему может не происходить
считывание ,файл существует ,проверял , если просто ввести его в  fopen он считывается  ,но скрипт всёвремя пишет мне 
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in  
с чем это может быть связано )))

Код

$fp = fopen("http://adress/photo/".$data,"r");



Код

chdir(/home/path/www/);
$fp = fopen("http://adress/photo/".$data,"r");

        $fl = fopen("pics/".$data,"w");

        $fl2 = fopen($relative_barbos."pics/".$data,"w");

        
        while (true) {
     
          $datas = fread($fp, 4096);
         
#          print strlen($datas)."=";

          if (strlen($datas) == 0) { break; }

          fputs($fl,$datas);

          fputs($fl2,$datas);

        }

        fclose($fp);

        fclose($fl);

        fclose($fl2);


Это сообщение отредактировал(а) supervladislav - 28.12.2011, 21:15
PM MAIL   Вверх
$дмитрий
Дата 28.12.2011, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Запрашиваемый файл точно существует. Прям 100% ? А почему отсутствует флаг b?
Я обычно файлы дергаю через сокеты, подобных проблем нет
PM MAIL   Вверх
supervladislav
Дата 28.12.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий, флаг b только при считывании???
Непонимаю как раньше работало ???

Добавлено через 8 минут и 25 секунд
$дмитрий, поставил - непомогло
PM MAIL   Вверх
$дмитрий
Дата 29.12.2011, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Тебе проще скопировать файлы в ручную
PM MAIL   Вверх
s0lman
Дата 29.12.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


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

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



В пхп установлена опция allow_url_fopen ?


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
supervladislav
Дата 29.12.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий, так в том то и дело ,что не проще )))
PM MAIL   Вверх
supervladislav
Дата 29.12.2011, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



s0lman, она включена в On ,остальные то сценарии работают.
Включил настройку  в .htaccess файле . 



PM MAIL   Вверх
supervladislav
Дата 29.12.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



Народ минутку сама загрузка файлов работает ,я загружаю файл такой же командой точно такойже ,
но когда речь идёт о сценарии ,то мне на вполне существующий файл который грузится  точно через такую функцию fopen 
отвечает мне вот так http
HTTP/1.1 404 Not Found 
PM MAIL   Вверх
$дмитрий
Дата 29.12.2011, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

сама загрузка файлов работает

Так а в чем проблема?
PM MAIL   Вверх
supervladislav
Дата 29.12.2011, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий, проблема в том ,что если я делаю вот так
 
Код

$link=fopen("http://adress/photo/150_1030_17311.jpg","rb");
while($data1=fread($link,4096)){
echo $data1;
fclose($link);
}


мне в echo выдаётся каляка моляка 
,когда я в свой скрипт добавляю 

Код

var_dump($datas);

там выдаётся false 

Это сообщение отредактировал(а) supervladislav - 29.12.2011, 16:24
PM MAIL   Вверх
supervladislav
Дата 29.12.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий,проблема в том ,что сценарий выполняется только вот до этого места 
Код

  if ($data<>"_") {
  $fp = fopen("http://adress/photo/".$data,"r");

в переменной $data есть название существующего файла ,в настройках всё что надо Для загрузки файла через fopen  прописано  ,а дальше сценарий не находит файл.
Файл загружается в случае если его просто прописать в fopen.
Если из скрипта выводит вот это:
Пишет вот это failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/u26156/arenda-spbru/www/db_photo.php on line 78





Код

foreach ($tables as $type=>$table) {

    $mysql = "SELECT * from $table where strPhotoIndex='_' or strPhotoIndex=' '  LIMIT 10;";

    $res = mysql_query($mysql);
    
    while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) {
    
      $result = true;

      $total++;

      $recordid = $row['RecordID'];
     
     
      if (($fp = fopen("http://adress/import_photo.php?type=".$type."&id=".$recordid,"r")) === false) die();

      $data = fread($fp, 4096);

      fclose($fp);




      if ($data<>"_") {
      
    
      

        $fp = fopen("http://adress/photo/".$data,"r");

        $fl = fopen("pics/".$data,"w");

        $fl2 = fopen($relative_barbos."pics/".$data,"w");



        while (true) {

          $datas = fread($fp, 4096);

#          print strlen($datas)."=";

          if (strlen($datas) == 0) { break; }

          fputs($fl,$datas);

          fputs($fl2,$datas);

        }

        fclose($fp);

        fclose($fl);

        fclose($fl2);



        list($width, $height) = getimagesize("pics/".$data);

        $newwidth = 211;

        $newheight = ($height/$width)*$newwidth;

        $source = imagecreatefromjpeg("pics/".$data);

        if ( $newwidth == $width &&  $newheight == $height) {

          $result = imagejpeg($source,"pics/".substr_replace($data, 'T', 0, 1));

          $result &= imagejpeg($source,$relative_barbos."pics/".substr_replace($data, 'T', 0, 1));

        } else {

         $thumb = imagecreatetruecolor($newwidth, $newheight);

          $result = imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

          $result &= imagejpeg($thumb,"pics/".substr_replace($data, 'T', 0, 1));

          $result &= imagejpeg($source,$relative_barbos."pics/".substr_replace($data, 'T', 0, 1));

        }

      }
if($data<>"_" or $data<>" "){
      $mysql = "UPDATE $table set strPhotoIndex='".$data."' WHERE RecordID=".$row['RecordID'];

      $message.=$mysql."\n";

      if ($result) {

        $res0 = mysql_query($mysql);

      } else {

        $message.="ERROR RESIZING ".$data." FOR ID=".$row['RecordID']." !!\n";

        if ($errors++>5) break 2;



      }}

      if (array_key_exists('count',$_GET)) {

        if ($total>=$_GET['count']) {

          print "<pre>".$message."</pre>";

          die();

        }

      }

    }

  }

$дмитрий, 
PM MAIL   Вверх
$дмитрий
Дата 29.12.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

в переменной $data есть название существующего файла

Откуда такая уверенность?
PM MAIL   Вверх
supervladislav
Дата 29.12.2011, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий, проверял через var_dump
PM MAIL   Вверх
$дмитрий
Дата 29.12.2011, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

echo "http://adress/photo/".$data;


Что выводит?
PM MAIL   Вверх
supervladislav
Дата 30.12.2011, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий, вот это  выводит ну все остальные ошибки связанные с тем ,что связаны с линком.
Warning: fopen(http://adress/photo/637_14269_16033.jpg ) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in 


Это сообщение отредактировал(а) supervladislav - 30.12.2011, 02:03
PM MAIL   Вверх
$дмитрий
Дата 30.12.2011, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



http://arenda-spb.ru/photo/637_14269_16033.jpg
Но такого файла действительно нет  smile 
PM MAIL   Вверх
supervladislav
Дата 30.12.2011, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



$дмитрий,я видимо не очень точно объяснил ,смотри скрипт лезит на сервер по внешнему ip 
и  загружает фотографию ,потом эту фотографию просто копирует на другой сайт тоесть сохраняет через fputs и всё.

Это сообщение отредактировал(а) supervladislav - 31.12.2011, 16:41
PM MAIL   Вверх
supervladislav
Дата 3.1.2012, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



Пробовал сделать вот так картинка прекрасно выводится )))
Warning: fopen(http://adress/photo/377_3647_11821.jpg ) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /
как только дело доходит до вот этого места почему-то теряется поток теряется?
вот тут 
Код

$fp = fopen("http://adress/photo/".$data,"r");


Код

if ($data<>"_") {
      
    echo 'да';
      

        $fp = fopen("http://adress/photo/".$data,"r");
        

        $fl = fopen("http://arenda-spb.ru/pics/".$data,"w");
        
        $fl2 = fopen($relative_barbos."pics/".$data,"w");



        while (true) {

          $datas = fread($fp, 4096);

#          print strlen($datas)."=";

          if (strlen($datas) == 0) { break; }

          fputs($fl,$datas);

          fputs($fl2,$datas);

        }

        fclose($fp);

        fclose($fl);

        fclose($fl2);


        
        list($width, $height) = getimagesize("/pics/".$data);

        $newwidth = 211;

        $newheight = ($height/$width)*$newwidth;

        $source = imagecreatefromjpeg("pics/".$data);

        if ( $newwidth == $width &&  $newheight == $height) {

          $result = imagejpeg($source,"pics/".substr_replace($data, 'T', 0, 1));

          $result &= imagejpeg($source,$relative_barbos."pics/".substr_replace($data, 'T', 0, 1));

        } else {

         $thumb = imagecreatetruecolor($newwidth, $newheight);

          $result = imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

          $result &= imagejpeg($thumb,"pics/".substr_replace($data, 'T', 0, 1));

          $result &= imagejpeg($source,$relative_barbos."pics/".substr_replace($data, 'T', 0, 1));

        }

      }
 

Код

$file=fopen("http://adress/photo/2265_15333_17266.jpg",'r');
$data=fread($file,4050);
header("Content-Type: image/jpeg");
header("Content-Length:10000");

PM MAIL   Вверх
supervladislav
Дата 4.1.2012, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



а скажите htacces файл может влиять 
php_value include_path .:/php/includes:/usr/local/lib/php:/home/u26156/include
DirectoryIndex index.php
RewriteEngine on
RewriteRule ^(.*).doc - [L]
RewriteRule ^(.*).txt - [L]
RewriteRule ^warning.php - [L]
RewriteRule ^index.php - [L]
RewriteRule ^index_new.php - [L]
RewriteRule ^page.php - [L]
RewriteRule ^43.gif - [L]
RewriteRule ^show.php - [L]
RewriteRule ^styles.css - [L]
RewriteRule ^(.*)style.php - [L]
RewriteRule ^admin.php - [L]
RewriteRule ^passwords.php - [L]
RewriteRule ^checksearch.php - [L]
RewriteRule ^db_import_owners.php - [L]
RewriteRule ^db_delete_old.php - [L]
RewriteRule ^db_import_list.php - [L]
RewriteRule ^db_import_unit.php - [L]
RewriteRule ^db_send_mails.php - [L]
RewriteRule ^db_send_mails_utf8.php - [L]
RewriteRule ^db_import_date.php - [L]
RewriteRule ^db_import_2.php - [L]
RewriteRule ^copy_photos.php - [L]
RewriteRule ^db_photo.php - [L]
RewriteRule ^test.php - [L]
RewriteRule ^phpinfo.php - [L]
RewriteRule ^show_time.php - [L]
RewriteRule ^images/.* - [L]
RewriteRule ^stat/.* - [L]
RewriteRule ^fck/.* - [L]
RewriteRule ^brd/.* - [L]
RewriteRule ^board/brd/(.*) brd/$1 [L]
RewriteRule ^brd\.php - [L]
RewriteRule ^img/.* - [L]
RewriteRule ^pics/.* - [L]
RewriteRule ^brd/.* - [L]
RewriteRule ^book/.* - [L]
RewriteRule ^wstat/.* - [L]
RewriteRule ^board/ brd.php [L]
RewriteRule ^.*/pics/(.*) pics/$1 [L]
RewriteRule ^.*/img/(.*) img/$1 [L]
RewriteRule ^.*/images/(.*) images/$1 [L]
RewriteRule ^.*/style\.css style.css [L]
RewriteRule ^(.*)_(.*)_(.*)/ page.php?show=$1&t=$2&t2=$3 [L]
RewriteRule ^(.*)_(.*)/ page.php?show=$1&t=$2 [L]
RewriteRule ^(.*)/ page.php?show=$1 [L]
RewriteRule (.*) index.php [L]
PM MAIL   Вверх
supervladislav
Дата 6.1.2012, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



блин я замучался с этим сценарием 
если делаю вот так картинка появляется ,но какая особенность сценария что он её даже загружать не хочет
Код

$file=fopen("http://213.170.82.234/photo/377_3647_11821.jpg",'r');
//$data=fread($file,4050);
header("Content-Type: image/jpeg");
header("Content-Length:1000000");
fpassthru($file);
//fclose($file);
exit();

PM MAIL   Вверх
supervladislav
Дата 6.1.2012, 03:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


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

Репутация: -8
Всего: -9



Скажите может есть принципиальная раздница если выводишь файл через   fpassthru или с помощью функции fread

PM MAIL   Вверх
$дмитрий
Дата 6.1.2012, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Перепиши свою кашицу из говна используя file_get/put_contents функции и все сразу заработает  smile 
Цитата

Скажите может есть принципиальная раздница если выводишь файл через   fpassthru или с помощью функции fread

Не нужен тут fpassthru
PM MAIL   Вверх
Xplod
Дата 6.1.2012, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
$дмитрий, вот это  выводит ну все остальные ошибки связанные с тем ,что связаны с линком.
Warning: fopen(http://adress/photo/637_14269_16033.jpg ) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in


ну в урле отчетливо вижу пробел после ....jpg и ) если это на самом деле есть то попробуйте trim($data)

PS: используйте функцию copy(string source, string dest), она для этого и придумана...)))



Это сообщение отредактировал(а) Xplod - 6.1.2012, 13:49
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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