PDA

Просмотр полной версии : Проблема с слешами в php


andreipup
03.03.2010, 14:45
del

b3
03.03.2010, 15:54
Выложи в добавок скрин исходника

wildshaman
03.03.2010, 16:04
Покажи кусок кода, где обрабатывается этот самый файл

andreipup
03.03.2010, 17:38
<?php
if ($_REQUEST['1'] == '666')
{
$file = 'http://www.moisait.ru/123.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . $file);
header('Content-Type: application/rar; name="' . $file . '"');
echo file_get_contents($file);
exit;
}
?>
<html><head>

Уже что тока не пробовал псих берет
Помогите плиз

fokinkostya
03.03.2010, 19:03
Все верно. В имени файла не могут быть слеши. Они заменяются на нижние подчеркивания.

andreipup
04.03.2010, 16:34
Все верно. В имени файла не могут быть слеши. Они заменяются на нижние подчеркивания.


Помоги плиз как правильно прописать я уже не знаю че и делать(((

b3
04.03.2010, 17:07
Помоги плиз как правильно прописать я уже не знаю че и делать(((
Тебе русским языком сказали что нельзя, возми у себя на компе попробуй создать файл с слешами и другими спец символами.

http://img246.imageshack.us/img246/1714/wwwwwwwwwwwwwwwwww.gif

[ac1D]
04.03.2010, 17:12
Решение идиотское но попробуй:

$link = str_replace("_",'"/"',$link);
/// bla bla bla

Deathdreams
04.03.2010, 17:13
не

header('Content-Type: application/rar; name="' . $file . '"');
header('Content-Disposition: attachment; filename=' . $file);

а

header('Content-Type: application/rar; name="' . basename($file) . '"');
header('Content-Disposition: attachment; filename=' . basename($file) );

Pashkela
04.03.2010, 17:14
']Решение идиотское но попробуй:

$link = str_replace("_",'"/"',$link);
/// bla bla bla


почему идиотское - нормальное решение, так и делать при отображении ссылки

[ac1D]
04.03.2010, 17:23
Pashkela, я просто сходу придумал, думаю есть более эффективные методы

andreipup
04.03.2010, 17:26
']Решение идиотское но попробуй:

$link = str_replace("_",'"/"',$link);
/// bla bla bla


Извините за тупость куда ссылку тут вставлять
Пример приведите

<?php
if ($_REQUEST['1'] == '666')
{
$file = 'http://www.moisait.ru/123.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . $file);
header('Content-Type: application/rar; name="' . $file . '"');
echo file_get_contents($file);
exit;
}
?>
<html><head>

Pashkela
04.03.2010, 17:37
в теме уже был правильный ответ от Deathdreams:


<?
$file = 'http://bug-track.ru/prog/toolza1.0.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Type: application/rar; name="' . basename($file) . '"');
echo file_get_contents($file);
?>

andreipup
04.03.2010, 17:39
в теме уже был правильный ответ от Deathdreams:


<?
$file = 'http://bug-track.ru/prog/toolza1.0.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Type: application/rar; name="' . basename($file) . '"');
echo file_get_contents($file);
?>


Не помогло(
Я уже это проверил.
Подскажите как правильно вставить в код это


$link = str_replace("_",'"/"',$link);
/// bla bla bla

Deathdreams
04.03.2010, 17:55
Подскажите как правильно вставить в код это


$link = str_replace("_",'"/"',$link);
/// bla bla bla

Руками, как ещё ?

andreipup
04.03.2010, 18:02
Руками, как ещё ?

Пожалуйста не издевайся,а покажи на примере вот на этом коде.
Я просто второй день еб... с этим кодом не знаю че и делать(

<?php
if ($_REQUEST['1'] == '666')
{
$file = 'http://www.moisait.ru/123.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . $file);
header('Content-Type: application/rar; name="' . $file . '"');
echo file_get_contents($file);
exit;
}
?>
<html><head>

Pashkela
04.03.2010, 18:03
Не помогло(

а у меня работает и на денвере и на vds

andreipup
04.03.2010, 18:05
а у меня работает и на денвере и на vds

Как же правильно вставить этот кусок кода?


$link = str_replace("_",'"/"',$link);
/// bla bla bla

andreipup
04.03.2010, 21:51
Выручите плиз)

fokinkostya
05.03.2010, 09:08
У тебя имя файла представляет из себя ссылку. В ссылке слеши, слеши в именах файла запрещены! Можешь извлечь из ссылки имя файла и вставить его в нужное место.


<?php
if ($_REQUEST['1'] == '666')
{
$file = 'http://www.moisait.ru/123.rar';
header('Content-length: ' . $filesize);
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Type: application/rar; name="' . basename($file) . '"');
echo file_get_contents($file);
exit;
}
?>