Преамбула: есть две машины - на машине 1 гоняется в реальном времени нечто, генерящее картинки и пихающее их в базу данных. База данных тоже на машине 1. В то же время на машине 2 висит веб-сервер и пхп приложение может обращаться в базу данных (и только туда) на машине 1 Задача: Как правильно давать пользователю ссылку, чтобы он мог наиудобнешим способом получить картинку, когда ему надо Попытки реализации: (1) //pull the picture $result = mysql_query($query) or die ("Error: can not select data"); if ($result) { $num = mysql_numrows($result); $i=0; while ($i < $num) { $pngfile=mysql_result($result,$i,"bin_data"); $i++; } $pnglength = strlen($pngfile); //the length of file //header for browser $h= "Content-Type: image/png\n"; $h.="Content-Length: $pnglength\n"; $h.="Content-Disposition: attachment; filename=$filename\n"; header($h); //file itself print $pngfile; } // Free resultset mysql_free_result($result); Недостатки подхода в том, что когда кликнет кто-то на ссылке и данный пхп запустится, то броузер сразу будет искать приложение, которое этот поток может открыть. Далеко не всегда пользователь хочет запускать что-то еще крому броузера или у него вообще может не оказаться смотрелки. (2) Получить картинку из базы данных и сохранить ее, потом сгенерировать правильную ссылку и выдать хтмл со ссылкой на только что сохраненный файл. Недостаток очевиден - надо что-то писать на машине 2, а это вопросы привилегий! Ниже код для сохранения картинки (с купюрами) //pull the picture $result = mysql_query($query); if ($result) { $num = mysql_numrows($result); $i=0; while ($i < $num) { $giffile=mysql_result($result,$i,"bin_data"); $i++; } } else { return 1; } //error $giflength = strlen($giffile); //the length of file if (is_writable($filename)) { if (!$handle = fopen($filename, 'w')) { echo "Cannot open file ($filename)"; return 3; } if (fwrite($handle, $giffile) == False) { echo "Cannot write to file ($filename)"; return 2; } fclose($handle); } // Free resultset mysql_free_result($result); Наверняка это более-менее стандартная задача! Какие есть еще подходы!!! ПОМОГИТЕ!
Ответ на:
комментарий
от no-dashi
Ответ на:
комментарий
от roller
Ответ на:
комментарий
от AngryElf
Ответ на:
комментарий
от no-dashi
Ответ на:
комментарий
от atoku
Ответ на:
комментарий
от AngryElf
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [лень] [solution] [i hate php] DIY бэкап базы данных (2008)
- Форум arpwatch, iptables, mac, ip и организация конфликты ip\MAC у пользователей (2004)
- Форум Неправильное выделение памяти (2006)
- Форум Выдержит ли SQLite нагрузку уровня linux.org.ru? (2022)
- Форум Segmentation fault (2009)
- Форум Mysql PHP (2006)
- Форум PHP + Mysql (2005)
- Форум PHP + MySql (2006)
- Форум PHP + MySQL (2006)
- Форум PHP + MySQL (2003)