Что значит скачивается но не сохраняется? Если она скачивается, то это уже подразумевает то, что она имеет какое-то представление в локальной файловой системе...
PHP: <? $filename = 'http://pashkela.narod.ru/rectool.jpg'; @header('Content-Disposition: attachment; filename="'.$filename.'"'); @header('Content-Type: application/x-force-download; name="'.$filename.'"'); readfile($filename); ?> Все нормально, выскакивает диалоговое на сохранение файла, можно сохранить или отказаться
Скоре всего у него какие траблы с браузером, в ослике по моему есть такая трабла с Content-Disposition.
Кусок кода с моего движка: PHP: header("Content-Disposition: attachment; filename=\"" .$filename."\"" ); header("Content-Description: File Transfer"); header("Content-Type: application/download"); header("Content-Length: " . filesize($file)); $fp = fopen($file, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); } fclose($fp); Пробуй
Всем доброй ночи, появился вот так вопрос: Есть число, к примеру: 1450000 Нужно выводить его в виде: 1'450'000 Как это сделать? P.s. Есть идея перебирать строку с конца и каждый три символа вставлять нужный знак, в данном случае это ', но как правильно это реализовать не могу сообразить. Всем кто поможет - Заранее благодарен, с меня + Решил вот так: PHP: $cost '1450000'; $cost = strrev($cost); for ($i=0;$i<=strlen($cost);$i++) if (($i % 3 == 0) and ($i != 0)){ $scost .= '\''.$cost[$i];} else {$scost .= $cost[$i];}; $cost = strrev($scost); echo $cost;
OnArs number_format($number, 0, '.', ','); $number - число 0 - кол-во знаков после запятой (для округления) . - разделитель целой и дробной части , - разделитель "триад" или как там их)
AkyHa_MaTaTa Pashkela groundhog Проблема заключается в том что после скачевания файла он не открывается пишит (невозможно посмотреть) В чём трабла??? PHP: <?php if(!empty($_GET['file'])){ $filename = basename($_GET['file']); @header('Content-Disposition: attachment; filename="'.$filename.'"'); @header('Content-Type: application/x-force-download; name="'.$filename.'"'); readfile($filename); } ?>
Посмотри содержимое файла в блокноте, наверняка там какой-то не регулярный контент... В смысле, того файла, который тебе отдаёт скрипт... Скрипт хоть в одной папке с файлами лежит?
Нет не в одной! вот скрипт: PHP: <?php include("db.php"); if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];} if (isset($_POST['load'])) { $adres = $_POST['load'];} $result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db); if (!$result1) { exit(mysql_error()); } if (mysql_num_rows($result1) > 0) { $myrow1 = mysql_fetch_array($result1); $mas = getimagesize($adres); $width = 215; $heigth = $mas[1]+270; $adres1 = "admin/".$myrow1['url']; $im = imagecreatetruecolor($width, $heigth); $im1 = imagecreatefromjpeg($adres); $im2 = imagecreatefromjpeg('logo.jpg'); $im3 = imagecreatefromjpeg($adres1); $i=1; $name = "avat".$i++.$myrow1['name']; imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20); imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]); imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350); //размеры аватарки $width = imagesx($im); $height = imagesy($im); //добавляем уголки $tl = imagecreatefrompng('tl.png'); //top left $tr = imagecreatefrompng('tr.png'); //top right $dl = imagecreatefrompng('dl.png'); //down left $dr = imagecreatefrompng('dr.png'); //down right //размеры уголков (предпологается, что размер углов одинаковый ) $w = imagesx($tl); $h = imagesy($tl); imagecopy($im, $tl, 0, 0, 0, 0, $w, $h); imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h); imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h); imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h); imagejpeg($im,"avatar/$name"); imagedestroy($im); } else { exit(); } printf("<a href='get.php?file=avatar/$name'><img src='avatar/$name' alt=''/></a>"); ?> PHP: <?php if(!empty($_GET['file'])){ $filename = basename($_GET['file']); @header('Content-Disposition: attachment; filename="'.$filename.'"'); @header('Content-Type: application/x-force-download; name="'.$filename.'"'); readfile($filename); } ?>
Ну смотри - readfile($filename) у тебя написано. Но перед этим ты делаешь $filename = basename($_GET['file']), то есть отсекаешь всё кроме имени файла... Таким образом твой скрипт отдаёт хидеры и пытается читать контент файла из той директории, в которой он находится сам... Попробуй вот так: Code: <?php if(!empty($_GET['file'])){ $filename = trim($_GET['file']); @header('Content-Disposition: attachment; filename="'.basename($filename).'"'); @header('Content-Type: application/x-force-download; name="'.basename($filename).'"'); readfile($filename); } ?> Но учти, что в таком случае скрипт является include уязвимым... Тогда уже так делай: Code: <?php if(!empty($_GET['file'])){ $filename = trim($_GET['file']); @header('Content-Disposition: attachment; filename="'.basename($filename).'"'); @header('Content-Type: application/x-force-download; name="'.basename($filename).'"'); readfile(dirname(__FILE__) . '/' . $filename); } ?>
Вот так замути Code: <?php if(!empty($_GET['file']) && file_exists($_GET['file'])){ $filename = trim($_GET['file']); @header('Content-Disposition: attachment; filename="'.basename($filename).'"'); @header('Content-Type: application/x-force-download; name="'.basename($filename).'"'); $filename = str_replace('..', '', $filename); readfile(dirname(__FILE__) . '/' . $filename); } ?>