Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Хелп ми плиз! Как обычно записывают файлы на www-сайтах?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет
Предыдущая тема :: Следующая тема  
Автор Сообщение
Сергей Суслов
Гость





СообщениеДобавлено: Сб Мар 16 2002 21:06    Заголовок сообщения: Хелп ми плиз! Как обычно записывают файлы на www-сайтах? Ответить с цитатой

Как обычно записывают файлы на www-сайтах?
Если файл присылается на сервер (например фотография), то обычно они (файлы) размещаются в БД или пишутся на сервер?
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Сб Мар 16 2002 21:39    Заголовок сообщения: Обычно пишутся на сервер. Ответить с цитатой

На подавляющем большинстве серьезных Web-серверов Internet работает Apache, а он держит HTML-страницы в файлах. Файловая система - это же своего рода база данных, только не табличная, а иерархическая, вроде DNS...

PS: Поставь себе Apache - он бесплатен!
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Сб Мар 16 2002 22:14    Заголовок сообщения: Re: Обычно пишутся на сервер. Ответить с цитатой

Спасибо! Но я имел ввиду, если файлы присылаются на сервер через формы. Например, картинки на этом форуме куда они складируются?
Если в БД, то как на PHP записать в MySQL файл?!
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Сб Мар 16 2002 23:00    Заголовок сообщения: Не надо "если" - узнай у хозяина Ответить с цитатой

Записать файл в БД можно и нужно как строку заранее неопределенной длины (место под нее выделяется динамически в зависимости от размера). IMHO. Только это на фиг никому не нужно - файловая система справляется с этим ничуть не хуже, транзакции делать тут не требуется, выборки по разным ключам тоже.
Вернуться к началу
anDeRan



Зарегистрирован: 02.03.2002
Сообщения: 29
Откуда: Одесса

СообщениеДобавлено: Вс Мар 17 2002 07:44    Заголовок сообщения: Re: Обычно пишутся на сервер. Ответить с цитатой

Хмм... Записывать графику в БД?! Что за изврат в веб-программировании? Ты похоже софт-программер...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Суслов
Гость





СообщениеДобавлено: Вс Мар 17 2002 12:39    Заголовок сообщения: Re: Обычно пишутся на сервер. Ответить с цитатой

Ну да. А почему так не делают? Ведь куча файлов - тоже не очень приятно. Плюс нужна система имён и целостный внешний ключ!
В БД писать было бы проще и удобнее!(??)
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Вс Мар 17 2002 12:52    Заголовок сообщения: Re: Не надо "если" - узнай у хозяина Ответить с цитатой

MySQL (у меня под Linux) почему-то не желает писать графический файл в mediumblob. Т.е. выдаёт ошибку по запросу insert into!..
"...файловая система справляется с этим ничуть не хуже..." - с БД удобнее - не надо системы имён и целостный внешний ключ на файлы.
И PHP-скрипту никак не поставить права на запуск др.программ (или можно?) -> нужно разрешить запись в каталог для всех!
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Вс Мар 17 2002 18:40    Заголовок сообщения: Грязный извращенец! Ответить с цитатой

Посмотри, сколько файлов содержат Unix, Windows и любая другая современная OS! Squid под Unix великолепно хранит Web-кэш в файлах!

Придумывать идентификаторы страницам все равно придется - имена, номера или еще как, так что и в БД, и в файловой системе все будет выглядеть примерно одинаково, только в файловой системе это будет работать эффективнее - будет запускаться меньше дополнительного кода.

Насчет целостности я вообще не понял - ведь сайт работает в режиме "один изредка пишет, остальные часто читают - транзакции вообще тут не нужны, они только тормозить будут...

Проблему с PHP я не понял - скорее, в БД будет больше проблем, чем в файловой системе, т.к. PHP заточен на работу в файловой системе...
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Вс Мар 17 2002 20:58    Заголовок сообщения: Re: Грязный извращенец! Ответить с цитатой

...И PHP-скрипту никак не поставить права на запуск др.программ (или можно?) -> нужно разрешить запись в каталог для всех!

Т.е. как организовать складирование файлов в каталог? Вариант: rwx-wx-wx на некоторый каталог и в него скрипт сможет записывать файлы. Но тогда проблеа защиты: если хакер узнает имя каталога, то сможет там всё удалить!

Плюс ещё возникла одна проблема: с помощью медиа-типа multipart/form-data данные формы поля типа file попадают на сервер в некий временный файл, который копируется на PHP командой copy($f1,"myfile.jpg"); но затем myfile.jpg не читается даже ACDSee (!), хотя размер и кодировка те же. Также пробовал копировать fread() b fwrite - та же история!
Как правильно скопировать?
Заранее спасибо, Сергей.
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Вс Мар 17 2002 21:14    Заголовок сообщения: SuEXEC Ответить с цитатой

Есть стандартное (пожалуй, единственно правильное) решение доступа скрипта к данным - скрипт запускается с правами того, кто его туда положил. В Apache это - SuEXEC, обеспечивается средствами Apache (спрашивай хозяина хостинга). Иначе все скрипты будут иметь одинаковый доступ к данным - от имени WebUser (есть такой параметр в Apache).
Ну или возможно хранение данных в БД, но тогда БД должна различать скрипты - возможно, каждый скрипт должен коннектиться с паролем...

А зачем копировать $f1 в "myfile.jpg", я не понял - не лучше ли использовать прямо $f1?
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Вс Мар 17 2002 21:44    Заголовок сообщения: Re: SuEXEC Ответить с цитатой

...Ну или возможно хранение данных в БД, но тогда БД должна различать скрипты - возможно, каждый скрипт должен коннектиться с паролем...
- так и есть, доступ по паролю!
...А зачем копировать $f1 в "myfile.jpg", я не понял - не лучше ли использовать прямо $f1?
- $f1 - временный - он присылается полем типа file формой с типом multipart/form-data!
А вот писать файл в БД так у меня и не получается!
$string = fread($f,filesize($f));
QUERY: insert into table values('','$strig',...)
и... Ошибка по запросу!
Обычные txt-копируются нормально. А вот графика с самыми разными символами - на каком-то управляющем символе прекращается!
Как правильно писать в БД графику?!
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Вс Мар 17 2002 21:51    Заголовок сообщения: А стОит ли так уповать на БД? Ответить с цитатой

Во-первых, можно хранить графику в файлах, как и положено.
Во-вторых, можно использовать метод типа UuEncode или Base64 - как бинарные файлы передаются по почте. Наверно, какой-то символ (возможно, нулевой) используется в БД как специальный...
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Вс Мар 17 2002 22:20    Заголовок сообщения: Ответ на: "А стОит ли так уповать на БД?- Dmitry.Karpo..- 17-03-2002 21:51" Re: А стОит ли так уп Ответить с цитатой

...метод типа UuEncode или Base64
- в передаваемой переменной записывается путь и имя файла у пользователя (при этом файл не высылается(?))! А как правильно сам файл передать на сервер?
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Ср Мар 20 2002 16:00    Заголовок сообщения: А как без системы имен? Ответить с цитатой

Система имен нужна для организации ссылок для переходов и для включения одной картинки в разные страницы. Без системы имен тут никуда.
А что за "целостный внешний ключ"? Я такого не знаю...
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Чт Мар 21 2002 12:19    Заголовок сообщения: Ответ на: "А стОит ли так уповать на БД?- Dmitry.Karpo..- 17-03-2002 21:51" Re: А стОит ли так уп Ответить с цитатой

А как правильно на PHP записать присланый файл на сервер? Пробовал copy, fopen & fread & fwrute. Но проблема таже: при записе на сервер происходит перекодирование из win в koi! Пробовал перекодировать convert_cyr_string и вроде бы внешне файл приводится к нормальному виду, но не читается - получается ошибка формата!
Как правильно писать?
Вернуться к началу
Сергей Суслов
Гость





СообщениеДобавлено: Чт Мар 21 2002 12:24    Заголовок сообщения: Re: А как без системы имен? Ответить с цитатой

А как правильно на PHP записать присланый файл на сервер? Пробовал copy, fopen & fread & fwrute. Но проблема таже: при записе на сервер происходит перекодирование из win в koi! Пробовал перекодировать convert_cyr_string и вроде бы внешне файл приводится к нормальному виду, но не читается - получается ошибка формата!
Как правильно писать?
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Чт Мар 21 2002 13:22    Заголовок сообщения: Тряси хозяина хостинга... Ответить с цитатой

Хорошие у тебя задачки - не зная даже что за сайт, не имея возможности попробовать, мы долны угадать, что там неправильно подкручено! Спроси хозяина хостинга!
А если сайт твой, то надо отказаться от перекодировки и хранить в том виде, в котором выдается юзеру. Кстати, можно выдавать юзеру в КОИ-8!
Но боюсь, проблема связана с перавильной интерпретацией символов перевода строкИ...
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Чт Мар 21 2002 13:22    Заголовок сообщения: Тряси хозяина хостинга... Ответить с цитатой

Хорошие у тебя задачки - не зная даже что за сайт, не имея возможности попробовать, мы долны угадать, что там неправильно подкручено! Спроси хозяина хостинга!
А если сайт твой, то надо отказаться от перекодировки и хранить в том виде, в котором выдается юзеру. Кстати, можно выдавать юзеру в КОИ-8!
Но боюсь, проблема связана с неправильной интерпретацией символов перевода строкИ...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...