[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибки при копировании файлов
vaalsh
Здравствуйте, вопрос начинающего...

В папке на сервере 100 файлов jpg.
php программа передвигает каждый файл в другую папку и меняет его рамер.
Перенос происходит порциями по 10 файлов, после чего файл программы перезагружается и запускается вновь, так как время непрерывной работы php на сервере ограничено.
Часто получаю ошибку:

"Warning: rename(...) [function.rename]: No such file or directory in..."

реже другую ошибку:

" imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file in..."

Самое удивительное, после первой порции файлов, ошибок больше не бывает!!!


Другими словами все проблемы, ТОЛЬКО с первой десяткой...

Заранее благодарен за любую помощь,

Валерий.



Спустя 1 час, 14 минут, 35 секунд (5.12.2010 - 00:17) kirik написал(а):
Первая ошибка говорит о том, что php не может найти файл для переименования по указанному пути.
Вторя ошибка похожа на то что jpeg файл битый. Попробуйте его пересохранить в каком-нибудь редакторе и снова пропустить через скрипт.

Спустя 9 часов, 6 минут, 55 секунд (5.12.2010 - 09:24) vaalsh написал(а):
Спасибо за ответ, kirik!

проблема состоит в том, что:


1. все ошибки происходят ТОЛЬКО с первой десяткой(!) - если поменять файлы местами ошибка будет с файлами, которые раньше никаких проблем не вызывали

2. та же самая программа, с теми же самыми файлами работает без проблем, если запустить ее на другом клиентском компьютере.

Может быть, это связано с буфером, кeшем, быстродействием...?

валерий.



Спустя 24 минуты, 56 секунд (5.12.2010 - 09:49) kirik написал(а):
Цитата (vaalsh @ 5.12.2010 - 01:24)
1. все ошибки происходят ТОЛЬКО с первой десяткой(!) - если поменять файлы местами ошибка будет с файлами, которые раньше никаких проблем не вызывали

2. та же самая программа, с теми же самыми файлами работает без проблем, если запустить ее на другом клиентском компьютере.

У вас денвер стоит? Вероятно что из-за него эта "магия".

Цитата (vaalsh @ 5.12.2010 - 01:24)
Может быть, это связано с буфером, кeшем, быстродействием...?

Наврядли.

Спустя 18 минут, 27 секунд (5.12.2010 - 10:08) vaalsh написал(а):
Я хостинг использую, не знаю про денвер.

как программа на сервере может зависить от того, откуда ее запускают?

Возможно ли как то исправить ситуацию?

Спасибо,

Валерий.

Спустя 18 минут, 22 секунды (5.12.2010 - 10:26) kirik написал(а):
Цитата (vaalsh @ 5.12.2010 - 02:08)
как программа на сервере может зависить от того, откуда ее запускают?

А, вы имели ввиду что запускаете от клиента.. сори, не допонял.

Цитата (vaalsh @ 5.12.2010 - 02:08)
Возможно ли как то исправить ситуацию?

Наверняка smile.gif Нужно смотреть что там внутри самого скрипта..

Спустя 34 минуты, 48 секунд (5.12.2010 - 11:01) vaalsh написал(а):
if ($handle = opendir('.')) {
while (false !== ($file_name = readdir($handle))) {

if($count>9){
closedir($handle);
mysql_close();
sleep(1);
echo "<script language='javascript'> recall()</script>";
exit();
}

if ($file_name != "." && $file_name != ".." && $file_name != "convert_DVDENG.php") {


$name_in=str_replace(".jpg",'',$file_name);// NAME OF FILE WITHOUT '.JPG'
$name_in=str_replace("'",'’',$name_in); // REPLACE ' TO ’ - NOT CONFUSE THE READING PROG.
$crnt_id++; // CARENT ID -> NAME OF THE FILE
$count++;
if($lang=="english"){
mysql_query("INSERT INTO ".$cat."(id, eng_name) VALUES ('".$crnt_id."', '".$name_in."')");
}else{
mysql_query("INSERT INTO ".$cat."(id, name) VALUES ('".$crnt_id."', '".$name_in."')");
}
$result = mysql_query($query);

if (($result)||(mysql_errno == 0)){
//================== PUT FILES TO FOLDER 'BIG' ==================================

$copy = copy($file_name,'../'.$cat.'/Big/'.$crnt_id.'.jpg');

//=============check if copied========================================
if($copy){
echo ($count." - $file_name - uploaded sucessfully! <br>");

}else{
echo "$file_name - could not be uploaded!<br>";
exit(" ".$count);
}
$filename_n='../'.$cat.'/Big/'.$crnt_id.'.jpg';


resizeImage($filename_n,'Mid',$cat,$crnt_id,470,460);// RESIZE AND PUT TO FOLDER 'MID'

resizeImage($filename_n,'Thumbs',$cat,$crnt_id,140,0);//RESIZE AND PUT TO FOLDER 'THUMBS'

rename($file_name, '../bufer/'.$file_name);

}
}
}
}


|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


В строке "<script language='javascript'> recall()</script>" страница с программой перегружается для следующих 10 файлов.


 ! 

М
Оформляйте код в соответсвующие тэги
kirik


Спустя 5 минут, 19 секунд (5.12.2010 - 11:06) vaalsh написал(а):
извините, забыл добавить :
сам файл называется "convert_DVDENG.php" и находится он в одной папке с конвертируемыми файлами.


Спустя 6 минут, 41 секунда (5.12.2010 - 11:13) kirik написал(а):
vaalsh
Так вроде ничего не видать..
Уберите
echo "<script language='javascript'> recall()</script>";

и посмотрите на каких файлах происходит ошибка..

Спустя 1 час, 22 минуты, 56 секунд (5.12.2010 - 12:36) linker написал(а):
1. Поле id сделать автоинкрементным и получать $crnt_id после инсерта функцией mysql_insert_id()
2. Увеличить время выполнения скрипта можно попробовать через set_time_limit(0);
Быстрый ответ:

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