Здравствуйте. Как можно сделать загрузку изображений со страницы сайта на сервер в определённую папку, и чтобы название файла заносилось в базу данных?
Ответ
Отложим в сторону всякие проверки, их вы сделаете сами и какие хотите (и файл ли это, и доступные расширения файлов, и прочее). Вам надо определиться, с каким именем будете сохранять файл, т.к. если его не переименовать, то может случиться так, что будет загружен файл с таким же именем, как у файла загруженного раньше. Это приведет к перезаписи существующего файла. Для примера, будем задавать новое имя в зависимости с текущей меткой времени Unix. Теперь к сути:
$path = 'path_to_dir/'; // директория для загрузки
$ext = array_pop(explode('.',$_FILES['myfile']['name'])); // расширение
$new_name = time().'.'.$ext; // новое имя с расширением
$full_path = $path.$new_name; // полный путь с новым именем и расширением
if($_FILES['myfile']['error'] == 0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'], $full_path)){
// Если файл успешно загружен, то вносим в БД (надеюсь, что вы знаете как)
// Можно сохранить $full_path (полный путь) или просто имя файла - $new_name
}
}
P.S. Поле файла в форме для моего примера, должно иметь атрибут name="myfile". Замените на своё значение, соответственно изменив в глобальной переменной $_FILES['myfile']
Комментариев нет:
Отправить комментарий