move_uploaded_file (проблемма кеширование файла браузером)

-Мерзкий-

Новичок
move_uploaded_file (проблемма кеширование файла браузером)

После обновлении в нужный каталог файла (move_uploaded_file), скачиваю файл браузером, обновляю его, снова скачиваю, а скачивается старый файл?
 

gonza

Новичок
Re: move_uploaded_file (проблемма кеширование файла браузером)

Автор оригинала: -Мерзкий-
После обновлении в нужный каталог файла (move_uploaded_file)
А покажи как ты это делаешь...
 

Resort

Новичок
не
это старая проблема старых версий пхп
сам пхп кеширует временные файлы котореы ему закачивают
есть функция в пхп - которая кеш файловый чистит, названия не помню, хотя она тож не сильна помогает, новый пхп поставь лучше
 

boombick

boombick.org
/dev/urandom в действии... Хотя и он порой более умные вещи генерирует
 

tony2001

TeaM PHPClub
>сам пхп кеширует временные файлы котореы ему закачивают
чушь.
PHP вообще ничего и нигде не кэширует.
он отработал и забыл.

>новый пхп поставь лучше
угу, еще постучи по колесу, протри стёкла и открой-закрой капот.
 

boombick

boombick.org
PHP вообще ничего и нигде не кэширует.
не, ну кеширует конечно (если верить http://ru2.php.net/manual/ru/function.clearstatcache.php), но в данном топике явно описывается не этот случай :)
 

-Мерзкий-

Новичок
Вот функция закачки файла:
function price_upload (
$file, // источник ($_FILES['<file_name>'])
$path, // путь к директории, куда следует поместить price
$filename, // имя файла, под которым следует сохранить изображение
&$err // через этот параметр передаются сообщения об ошибках
)
{
global $_MSG;
$msg = $_MSG['img'];

// $max_size = $max_size*1024;
$err = "";

// === ПРОВЕРКА ПАРАМЕТРОВ ФАЙЛА ===

// Проверка типа
$file_type = $file['type'];
// echo $file_type;
if (strpos($file_type, 'zip') === false)
{

$err = $msg['wrong_type']." - \"".$file_type."\"";
echo $err;
return false;
}
echo "Прайс лист обновлен!";
echo $path.$filename;
$result = move_uploaded_file($file['tmp_name'], strtolower($path.$filename));

}

----------------------------------------
При скачивании, заполняется форма: (http://polospb.ru/?module=articles&id=4), проверяется, и
header("Location: $pricedir$price.zip"); просто направляет браузер на файл:

Полный код:


//Проверка веденных данных
if (!isset($_GET['email'])) {shablon("Ошибка - Вы не ввели email!","Ошибка!"); exit;} else {$email=$_GET['email'];}
if (!isset($_GET['org'])) {$org = "none";} else {$org=$_GET['org'];}
if (!isset($_GET['contact_name'])) {$contact_name = "none";} else {$contact_name=$_GET['contact_name'];}
if (!isset($_GET['tel'])) {$tel = "none";} else {$tel=$_GET['tel'];}

if ($email=="" or !eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}","$email")) {shablon("Ошибка!<BR> <B>$email</B> - такого emailа в природе не существует!","Ошибка!"); exit;}

// Преобразовываем емайл: в нижний регистр
$email=strtolower($email);
$email = str_replace("|"," ","$email");

$fp=fopen("$datadir/price_user.dat","a");
fputs ($fp,"$email|$date|$tel|$contact_name|$org|$price\r\n");
fclose ($fp);
if (isset($price))
header("Location: $pricedir$price.zip");
 

gonza

Новичок
а функция price_upload носит декларативно-декоративный характер или ты ее все таки где-то вызываешь?
 

-Мерзкий-

Новичок
baev
$datadir, $pricedir
Береться из файла конфига, который ранее подключается.
$price - передается из формы - указывает какой прайс хочет скачать пользователь.

gonza
Функция price_upload вызывается в другом модуле:
include ($_system_dir.'.price_config'); //Incude upload files list

function get_files_to_upload()
{
global $_system_dir, $upload_files_dir, $upload_files, $_qa_dir;



$file_tmpl = load_file($_qa_dir."templates/files_to_upload/files_list_item.html");
$out = '';
for ($i=1; $i<count($upload_files)+1; $i++)
{

$out .= str_replace("{FILE_NAME}", $i, $file_tmpl);
$out = str_replace("{NAME}", $upload_files[$i], $out);

}

return $out;

}


function price_upload1()
{

global $upload_files, $upload_files_dir,$_system_dir;

include ($_system_dir."upload_price.php");

$err='';
for ($i=1; $i<count($upload_files)+1; $i++)
{
if (isset($_FILES[$i]))
{
//echo $upload_files_dir;
price_upload($_FILES[$i],"../".$upload_files_dir, $i.".zip", $err);

}
}


}

if (isset($action) && ($action == "upload"))
{
$out = price_upload1();
}

// SHOW SECTIONS|ITEMS LIST
$out = get_files_to_upload();
 

gonza

Новичок
пока тебя не побили менее миролюбивые обитатели форума - сотри этот ужас и выложи здесь форму аплоада и сведенный к минимуму код аплоад менеджера.
 

baev

‹°°¬•
Команда форума
Береться из файла конфига, который ранее подключается.
$price - передается из формы - указывает какой прайс хочет скачать пользователь.
Тогда какого Вы здесь показываете код, не имеющий никакого отношения к проблеме? (Особенно «порадовала» проверка e-mail'а...)
И ещё утверждаете, что он — «полный»?

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

Вообще, скорее всего проблема к php никакого отношения не имеет: просто файл или на сервере кэшируется или у интернет-провайдера.
 

Garret

Кто здесь?
Еррор_репортинг хоть включен? А этот скрипт собсно хоть когда то заливал файлы? Или ты первый раз руками залил :)
 

-Мерзкий-

Новичок
Garret
Заливал и заливает. Если на компьютере до этого не скачавали файл-скачивается нужный. После обновления файла на этом же компьютере скачивается тот что уже был скачан. На следующем компьютере, на котором опять никто ничего не качал-скачивается тот, который нужно(последний, обновленный).
baev
"...Вообще, скорее всего проблема к php никакого отношения не имеет: просто файл или на сервере кэшируется или у интернет-провайдера. ..."
У меня тоже такое ощущение. не знаете ли с чем это связано?
P.S. Может все дело в пятнице 13?
 
Сверху