Форум -> PHP, JS, MySQL -> Загрузка файла на сервер методом POST | Загрузка файла на сервер методом POST |
---|
Vovich90 | Дата: 28.01.2008, в 00:34 | Сообщение №1 | ПользовательПользователь №: 32 Сообщений: 28
| Привет всем. Вообщем появилась надобность сделать загрузку изображения на сервер с последующей вставкой имени загруженного файла в БД. Стал искать в различных учебниках - везде примеры просто загрузки файла на серв (что не проблема сделать), но как вставить результат не врубился(
Вообщем вот пишу следующее (привожу только непосредственно связанный кусок):
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php if ($_POST[SUBMIT] == "$lang_a_conf_save") { // Загрузка обложки $box_file_name = $_FILES['box']['name']; $re_name_boxf = "box_$box_file_name"; $finalfnamebox = str_replace(' ', '_', $re_name_boxf); $add = "uploads/games/box/$finalfnamebox"; copy($_FILES[box][tmp_name], $add);
$sql = "INSERT INTO gameindex SET box='$finalfnamebox'"; } else {
// Форма echo "<form action=\"?page=Games&action=Add\" method=\"post\">";
// Поле загрузки картинки echo "<input class=\"input\" type=\"file\" size=\"25\" name=\"box\">";
// Кнопка echo "<input class=\"submit\" type=\"SUBMIT\" name=\"SUBMIT\" value=\"$lang_a_conf_save\">"; }"; ?> |
Привел только связанное с загрузкой. Вообщем в таком виде изображение не загружается. В бд вставляется только слово box_ и все.
Надеюсь на вашу помощь.
ЗЫ: в коде слаеда смотрел, но что-то непонятно там....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Vovich90 28.01.2008 г. в 00:35:15 |
| | | Serg_pnz | Дата: 28.01.2008, в 08:12 | Сообщение №2 | АдминистраторПользователь №: 1 Сообщений: 2242
| Попробуй заменить
Код | 1
| $box_file_name = $_FILES['box']['name'];
$re_name_boxf = "box_$box_file_name"; |
на
Код | 1
| $re_name_boxf = "box_".$_FILES['box']['name']; |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | Vovich90 | Дата: 28.01.2008, в 17:17 | Сообщение №3 | ПользовательПользователь №: 32 Сообщений: 28
| Вообщем пошаманил немного, теперь нормально копирует изображение и вставляет в бд. Но появилось 2 вопроса:
1) Нужно чтобы загруженное изображение переименовывалось в следующий вид: box_Название_игры.расширение_файла название игры это $_POST[title] пишу следующее:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12
| <?php // Загрузка обложки $uploaddir = 'uploads/games/box/'; $re_name_boxf = "box_".$_POST[title]; $finalfnamebox = str_replace(' ', '_', $re_name_boxf); $uploadfile = $uploaddir.basename($finalfnamebox); if (copy($_FILES['box']['tmp_name'], $uploadfile)) { echo "<h3>Файл успешно загружен на сервер</h3>"; } else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; } ?> |
Файл нормально переименовывается, но теряется оригинальное расширеие файла (т.е. получается box_Название_игры ) Как можно сохранить расширение файла?
2) И вопрос в догонку. Есть функция перевода русского текста в транслит: PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <?php // функция превода текста с кириллицы в траскрипт
function encodestring($title)
{
// Сначала заменяем "односимвольные" фонемы.
$title=strtr($title,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$title=strtr($title,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// Затем - "многосимвольные".
$title=strtr($title,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
// Возвращаем результат.
return $title;
}; ?> |
Находится в файле translit.php. Как можно ее приинклудить, чтобы она проверяла конечное название файла, и если название игры будет русским - переделывала ее в транслит? |
| | Vovich90 | Дата: 03.02.2008, в 23:23 | Сообщение №4 | ПользовательПользователь №: 32 Сообщений: 28
| | | | Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|
|