PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
imediasun
Отправлено: 16 Декабря, 2012 - 20:12:30
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
Как правильно расположить загружаемые файлы так не работает
CODE (
htmlphp ):
скопировать код в буфер обмена
if ( move_uploaded_file ( $_FILES [ 'userfile' ] [ 'tmp_name' ] , $upload_path . $filename , $_FILES [ 'userfile2' ] [ 'tmp_name' ] , $upload_path . $filename2 , $_FILES [ 'userfile3' ] [ 'tmp_name' ] , $upload_path . $filename3 , $_FILES [ 'userfile4' ] [ 'tmp_name' ] , $upload_path . $filename4 ) )
(Отредактировано автором: 16 Декабря, 2012 - 20:15:56)
DelphinPRO
Отправлено: 16 Декабря, 2012 - 20:31:29
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
O_o
с чего вы решили, что так должно работать?
почитайте документацию по этой функции.
Она принимает два параметра - полное имя загруженного файла и место назначения.
(Добавление)
для обработки нескольких файлов - цикл
-----Чем больше узнаю, тем больше я не знаю.
imediasun
Отправлено: 16 Декабря, 2012 - 21:31:15
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
DelphinPRO пишет: O_o
с чего вы решили, что так должно работать?
почитайте документацию по этой функции.
Она принимает два параметра - полное имя загруженного файла и место назначения.
(Добавление)
для обработки нескольких файлов - цикл
как бы вы создали цикл если нужно занести 4 файла,
помогите пожалуйста
DelphinPRO
Отправлено: 16 Декабря, 2012 - 21:46:28
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
CODE (
html ):
скопировать код в буфер обмена
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<!-- обратите внимание на кватратные скобки -->
PHP:
скопировать код в буфер обмена
$count = count ( $_FILES [ 'file' ] [ 'name' ] ) ; for ( $i = 0 ; $i < $count ; $i ++ ) {
$source = $_FILES [ 'file' ] [ 'tmpname' ] [ $i ] ;
$destination = $directory . $_FILES [ 'file' ] [ 'name' ] [ $i ] ;
echo 'Error load file ' . $_FILES [ 'file' ] [ 'name' ] [ $i ] ;
}
}
-----Чем больше узнаю, тем больше я не знаю.
imediasun
Отправлено: 16 Декабря, 2012 - 21:48:57
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
DelphinPRO пишет: CODE (
html ):
скопировать код в буфер обмена
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<!-- обратите внимание на кватратные скобки -->
PHP:
скопировать код в буфер обмена
$count = count ( $_FILES [ 'file' ] [ 'name' ] ) ; for ( $i = 0 ; $i < $count ; $i ++ ) {
$source = $_FILES [ 'file' ] [ 'tmpname' ] [ $i ] ;
$destination = $directory . $_FILES [ 'file' ] [ 'name' ] [ $i ] ;
echo 'Error load file ' . $_FILES [ 'file' ] [ 'name' ] [ $i ] ;
}
}
а можно чтобы все файлы заносились ондной кнопкой только по очереди, как вы думаете
DelphinPRO
Отправлено: 16 Декабря, 2012 - 21:54:35
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
не понял. а я что показал? там одна кнопка и есть. просто я ее не показал
CODE (
html ):
скопировать код в буфер обмена
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<input type = "file" name = "file[]" >
<button type = "submit" > Загрузить файлы</ button >
PS не цитируйте полностью мои сообщения. и так видно к какому посту относится ваш ответ.
-----Чем больше узнаю, тем больше я не знаю.
imediasun
Отправлено: 16 Декабря, 2012 - 22:04:23
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
Я имею ввиду чтобы был один инпут и пути к фотографиям вносились в одну запись в базе а фотки в одну папку
(Добавление)
Что то не получается у меня занести файлы и путь в базу посмотрите пожалуйста где ошибка (мне же еще как то нужно определить переменную названия пути)
PHP:
скопировать код в буфер обмена
$allowed_filetypes = array ( '.jpg' , '.gif' , '.bmp' , '.png' ) ; // Здесь мы перечисляем допустимые типы файлов $max_filesize = 5242888 ; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
$upload_path = '../photos/' ; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
$filename = $_FILES [ 'userfile' ] [ 'name' ] ;
// В переменную $filename заносим точное имя файла (включая расширение).
$file_with_path = $upload_path . $filename ;
$ext = substr ( $filename , strpos ( $filename , '.' ) , strlen ( $filename ) - 1
) ; // В переменную $ext заносим расширение загруженного файла. die ( 'Данный тип файла не поддерживается.' ) ; if ( filesize ( $_FILES [ 'userfile' ] [ 'tmp_name' ] ) > $max_filesize ) die ( 'Фаил слишком большой.' ) ; die ( 'Невозможно загрузить фаил в папку. Установите права доступа - 777.' ) ;
$count = count ( $_FILES [ 'userfile' ] [ 'name' ] ) ; for ( $i = 0 ; $i < $count ; $i ++ ) {
$source = $_FILES [ 'userfilefile' ] [ 'tmpname' ] [ $i ] ;
$destination = $upload_path . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
echo 'Error load file ' . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
}
echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>' ;
$sql_good = "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
VALUES ('$cat_id ','$name_good ','$price_good ','$size ','$length ','$country ','$file_with_path ','$file_with_path2 ','$file_with_path3 ','$file_with_path4 ','$description ')" ;
if ( $query_good ) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>' ;
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.' ;
}
}
}
(Отредактировано автором: 16 Декабря, 2012 - 22:41:40)
DelphinPRO
Отправлено: 16 Декабря, 2012 - 22:50:58
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
PHP:
скопировать код в буфер обмена
// в это строчке файл УЖЕ перемещается если это возможно
echo 'Error load file ' . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
}
// а тут получается ЭТОТ ЖЕ файл перемещается СНОВА!!!
echo 'Ваш фаил успешно загружен'
...
но два раза один и тот же файле нельзя переместить его уже нет на старом месте
т.е. так следует сделать:
PHP:
скопировать код в буфер обмена
// в это строчке файл УЖЕ перемещается если это возможно
echo 'Error load file ' . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
}
else {
echo 'Ваш фаил успешно загружен'
...
по поводу
imediasun пишет: Я имею ввиду чтобы был один инпут
в HTML5 был добавлен атрибут «multiple» как раз для выбора нескольих файлов. но мне им пользоваться пока не приходилось, ничего сказать не могу. а тестить сейчас лень
-----Чем больше узнаю, тем больше я не знаю.
imediasun
Отправлено: 16 Декабря, 2012 - 22:54:36
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
У меня такой ответ программы, ошибка при проверке расширения файла и как определить в таком случае переменную для внесения пути
Данный тип файла не поддерживается.
(Добавление)
Зделал так все равно не работает
PHP:
скопировать код в буфер обмена
$count = count ( $_FILES [ 'userfile' ] [ 'name' ] ) ; for ( $i = 0 ; $i < $count ; $i ++ ) {
$source = $_FILES [ 'userfilefile' ] [ 'tmpname' ] [ $i ] ;
$destination = $upload_path . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
echo 'Error load file ' . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
}
else
{
echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>' ;
$sql_good = "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
VALUES ('$cat_id ','$name_good ','$price_good ','$size ','$length ','$country ','$file_with_path ','$file_with_path2 ','$file_with_path3 ','$file_with_path4 ','$description ')" ;
if ( $query_good ) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>' ;
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.' ;
}
}
DelphinPRO
Отправлено: 16 Декабря, 2012 - 23:09:30
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
imediasun пишет: Данный тип файла не поддерживается.
ну так загружайте поддерживаемые файлы
кстати, проверку расширения можно упростить
imediasun пишет: $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
лучше так
и соответственно
-----Чем больше узнаю, тем больше я не знаю.
imediasun
Отправлено: 17 Декабря, 2012 - 00:16:51
Частый посетитель
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
Ничего не работает, что тут не так?
PHP:
скопировать код в буфер обмена
// Загружаем фаил в указанную папку.
$count = count ( $_FILES [ 'userfile' ] [ 'name' ] ) ; for ( $i = 0 ; $i < $count ; $i ++ ) {
$source = $_FILES [ 'userfilefile' ] [ 'tmpname' ] [ $i ] ;
$filename = $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
$ext = pathinfo ( $filename , PATHINFO_EXTENSION
) ; // расширение без точки $upload_path = '../photos/' ; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
$allowed_filetypes = array ( '.jpg' , '.gif' , '.bmp' , '.png' ) ; // Здесь мы перечисляем допустимые типы файлов $file_with_path = $upload_path . $filename ;
$destination = $upload_path . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
echo 'Error load file ' . $_FILES [ 'userfile' ] [ 'name' ] [ $i ] ;
}
else
{
echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>' ;
$sql_good = "INSERT INTO goods (id_cat,name_good,price_good,size,length,country,photo1_path,photo2_path,photo3_path,photo4_path,description)
VALUES ('$cat_id ','$name_good ','$price_good ','$size ','$length ','$country ','$file_with_path ','$file_with_path2 ','$file_with_path3 ','$file_with_path4 ','$description ')" ;
if ( $query_good ) echo 'Запрос на добовление данных в базу данных выполнен успешно.Вернитесь на предыдущую<a href="add_goods.php"> страницу</a>' ;
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.' ;
}
}
esterio
Отправлено: 17 Декабря, 2012 - 20:27:17
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012
Откуда: Украина, Львов
Помог: 127 раз(а)
1.
imediasun пишет: $allowed_filetypes = array('.jpg','.gif','.bmp','.png');
уберите точки, тоесть
2. у вас $count раз делаеться запрос на добавление в базу в цикле, а нужно один раз
3. сделайте отдельную таблицу для изображений и связивайте по ИД. так вы сможите загружать сколько угодно картинок.
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB