Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файла на сервер
 
 автор: ekstrom   (07.04.2010 в 20:11)   письмо автору
 
 

$file_name = $_FILES['img1']['name'];
$file_name = strrchr($file_name, ".");
$filename = $_FILES['img1']['tmp_name'];






$s = "ORDER BY `id` DESC";
$bd = mysql_query("select * from newyear $s LIMIT 0,1;");
$list = mysql_fetch_array($bd);
$nom=($list['id']+1);
$ext = substr($_FILES['img1']['name'], 1 + strrpos($_FILES['img1']['name'], "."));
$ext =mb_strtolower($ext);
$size = $_FILES['img1']['size'];
$siz = round(($size/1024), 2);
if ((@move_uploaded_file($filename, "$nom.$ext")) && 
(mysql_query
("INSERT INTO `newyear` 
( `foto`, `size`)
VALUES
('$nom.$ext', '$siz')
")
))
{
echo 'Успешно.';
echo'<br><a href=".">Вернутся</a><br>';

else 
{
echo 'Ошибка.';
echo'<br><a href=".">Вернутся</a><br>';
}



Все проверил,оказалось не работает строка
((@move_uploaded_file($filename, "$nom.$ext")) 


Как с этим бороться,непонимаю..Может кто поможет.

  Ответить  
 
 автор: Лена   (07.04.2010 в 21:07)   письмо автору
 
   для: ekstrom   (07.04.2010 в 20:11)
 

У вас не только это не работает. У вас почти после каждой строки неправильно работает.
В поиске, который есть на этом форуме, ищите "Вывод ошибок на экран" или error_reporting
((@move_uploaded_file($filename, "$nom.$ext"))
Заглушка перед move_uploaded_file зачем? $nom.$ext - конкатенация переменных, зачем переменные брать в кавычки?
$bd = mysql_query("select * from newyear $s LIMIT 0,1;"); - здесь тоже ошибка. Внимательно посмотрите.

$ext = substr($_FILES['img1']['name'], 1 + strrpos($_FILES['img1']['name'], "."));
Если у файла будет название asd.asd.php в $ext окажется совсем не расширение файла... И у вас substr обрежет первый символ строки.
В какой кодировке написан скрипт?

  Ответить  
 
 автор: neadekvat   (07.04.2010 в 21:10)   письмо автору
 
   для: Лена   (07.04.2010 в 21:07)
 

> $nom.$ext - конкатенация переменных, зачем переменные брать в кавычки?
<?php
$nom 
'name';
$ext 'jpg';
echo 
"$nom.$ext"// name.jpg
echo $nom.$ext // namejpg


strrpos() - находит последнее вхождение

> здесь тоже ошибка. Внимательно посмотрите
Какая? Точка с запятой? Mysql, насколько я помню, позволяет делать это из скриптов, а если через консоль - то без ; вообще хрен запрос отправишь.

  Ответить  
 
 автор: Лена   (07.04.2010 в 21:32)   письмо автору
 
   для: neadekvat   (07.04.2010 в 21:10)
 

echo "$nom.$ext"; // name.jpg
echo $nom.$ext // namejpg

Увидела. Я так не делаю. Лучше уже echo $nom. "." . $ext; - так меньше запутываешься.

>Какая? Точка с запятой?
После 1.

>strrpos() - находит последнее вхождение
Это да... одну r прозевала.

  Ответить  
 
 автор: neadekvat   (07.04.2010 в 21:38)   письмо автору
 
   для: Лена   (07.04.2010 в 21:32)
 

> Увидела. Я так не делаю. Лучше уже echo $nom. "." . $ext; - так меньше запутываешься.
Однако же это не ошибка..
Хотя я тоже делаю так, как вы показали.

> После 1.
Именно про это я и сказал

  Ответить  
 
 автор: neadekvat   (07.04.2010 в 21:18)   письмо автору
 
   для: ekstrom   (07.04.2010 в 20:11)
 

> $ext = substr($_FILES['img1']['name'], 1 + strrpos($_FILES['img1']['name'], "."));
> $ext = mb_strtolower($ext);
Вопрос про кодировку уже задали..

В if лишних скобок наставили, по-моему.
Уберите @ и поставьте error_reporting(E_ALL), я думаю, можете много нового узнать об отношении интерпритатора к вашему скрипту.

  Ответить  
 
 автор: ekstrom   (07.04.2010 в 21:43)   письмо автору
 
   для: neadekvat   (07.04.2010 в 21:18)
 

кодировка utf-8
с проблемой разобрался,папка не позволяла сохранять в ней данные через форму.

  Ответить  
 
 автор: neadekvat   (07.04.2010 в 21:56)   письмо автору
 
   для: ekstrom   (07.04.2010 в 21:43)
 

тогда mb_substr и mb_strrpos.. и вообще

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования