Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла на сервер 
:(
    Опции темы
m1kle
Дата 11.11.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Вопрос
Код

$uploaddir = '/avatar/';
$uploadfile = $uploaddir .@ basename($_FILES["userfile"]["name"]);
echo basename($_FILES["userfile"]["name"]);
if ( @ move_uploaded_file($_FILES["userfile"]['tmp_name'], $uploadfile))
{
$a=@ ($_FILES["userfile"]["name"]);
if(!(eregi('jpg', $a)))
{
echo "<br><br>Ошибка, неверное разрешение файла";
}
else
{
echo "<br><br>Аватар усешно загружен на сервер";

Как сделать, чтобы имя файла была, не как у пользователя на компьютере, а скажем "1.jpg"? 
PM MAIL WWW MSN   Вверх
flashaa
Дата 11.11.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Код

basename($_FILES["userfile"]["name"]);

Этот фрагмент означает имя файла.
PM MAIL   Вверх
m1kle
Дата 11.11.2007, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Не знаю почему, но так вот
Код

$uploaddir = '/avatar/';
$uploadfile = $uploaddir .@ "1.jpg";
if ( @ move_uploaded_file($_FILES["userfile"]['tmp_name'], $uploadfile))
{
$a=@ ($_FILES["userfile"]["name"]);
if(!(eregi('jpg', $a)))
{
echo "<br><br>Ошибка, неверное разрешение файла";
}
else
{
echo "<br><br>Аватар усешно загружен на сервер";

Не работает.
PM MAIL WWW MSN   Вверх
dsCode
Дата 11.11.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



m1kle, 

Цитата(m1kle @  11.11.2007,  17:57 Найти цитируемый пост)
Как сделать, чтобы имя файла была, не как у пользователя на компьютере, а скажем "1.jpg"?  


move_uploaded_file($_FILES["userfile"]["tmp_name"], "локальный_путь_в_системе_и_любое_имя_файла_указываете");

Цитата(m1kle @  11.11.2007,  22:41 Найти цитируемый пост)
if(!(eregi('jpg', $a)))
{
echo "<br><br>Ошибка, неверное разрешение файла";
}

Подобные вещи лучше проверять через MIME-тип:

Код

if ($_FILES["userfile"]["type"] !== "image/gif" &&
    $_FILES["userfile"]["type"] !== "image/jpeg" &&
    $_FILES["userfile"]["type"] !== "image/pjpeg"
) {
  echo 'Ошибка, можно использовать только .gif- и .jpg файлы';
}


Иначе, по Вашей логике, я могу зааплоадить php-скрипт, поставив ему расширение .jpg (ну и потом выполнить, естественно).

Цитата(m1kle @  11.11.2007,  22:41 Найти цитируемый пост)
неверное разрешение

ну и все-таки, наверное, расширение ;)


Это сообщение отредактировал(а) dsCode - 11.11.2007, 23:46


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
m1kle
Дата 12.11.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



dsCode, огромное спасибо, попробую.
PM MAIL WWW MSN   Вверх
m1kle
Дата 17.11.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Код

$uploaddir = '/avatar/';
$uploadfile = $uploaddir .@ basename($_FILES["userfile"]["name"]);
if(@move_uploaded_file($_FILES["userfile"]["tmp_name"], "1.jpg"));
{
    $a=@ ($_FILES["userfile"]["name"]);
    if (@$_FILES["userfile"]["type"] !== "image/gif" &&
       @ $_FILES["userfile"]["type"] !== "image/jpeg" &&
       @ $_FILES["userfile"]["type"] !== "image/pjpeg")
    {
        echo "Ошибка, можно использовать только .gif- и .jpg файлы";
    }
    else
    {
        echo "<br><br>Аватар усешно загружен на сервер";
    }
}
 вот так вот не работает :(
PM MAIL WWW MSN   Вверх
DioNiR
Дата 17.11.2007, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



@ - убери везде и тогда помймёшь почему.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
m1kle
Дата 17.11.2007, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Warning: basename() expects parameter 1 to be string, array given in /home/httpd/netwar.ru/pers2.php on line 19

Notice: Array to string conversion in /home/httpd/netwar.ru/pers2.php on line 20
PM MAIL WWW MSN   Вверх
DioNiR
Дата 17.11.2007, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Теперь смотришь что на 19 и 20 ( хотя 20 не оч обязательно )
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
Co0L
Дата 17.11.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.11.2007

Репутация: нет
Всего: нет



Я так понял, что если файл не .jpg, то он его все равно загружает и хранит на сервере, что тоже не очень умно smile

Это сообщение отредактировал(а) Co0L - 17.11.2007, 11:31
PM MAIL   Вверх
m1kle
Дата 17.11.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



19: $uploadfile = $uploaddir . basename($_FILES["userfile"]["name"]);
20: if(move_uploaded_file($_FILES["userfile"]["tmp_name"], "1.jpg"));

PM MAIL WWW MSN   Вверх
kasmanaft
Дата 17.11.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 16.11.2007

Репутация: 1
Всего: 2



Наверное, в форме в качестве name у input'a Вы используете массив.
(с [] на конце)
PM MAIL   Вверх
m1kle
Дата 17.11.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



kasmanaft, всё, переписал код, работает, замечание "Я так понял, что если файл не .jpg, то он его все равно загружает и хранит на сервере, что тоже не очень умно" тоже учёл
PM MAIL WWW MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.