[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с заливкой файлов на сервер
in9emix
Ребята подскажите пожалуйста, есть формачка которая методом пост отправляет файл. Если изменить $extentions = array("txt","w3x", "rar"); на mp3, wav например и т.д, то все нормально. Меняю на другие расширения. Всё...выдает пустоту после завершения работы скрипта...подскажите как быть...Нужно принимать расширение только те что я укажу. В данном случае их указал ниже.

$id = номер юзера

$imgDir = "news/".$id."";
@mkdir($imgDir, 0777);

$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];

$title = pathinfo($filename, PATHINFO_FILENAME);

if(!empty($file))
{

ini_set('memory_limit', '64M');
$maxsize = "30000000";
$extentions = array("txt","w3x", "rar");
$size = filesize ($_FILES['file']['tmp_name']);
$type = strtolower(substr($filename, 1+strrpos($filename,".")));
$new_name = '.$id.'_'.time().'.'.$type;
if($size > $maxsize)
{
echo "Файл не добавлен, максимальный размер 30Мб";
}
elseif(!in_array($type,$extentions))
{
echo "Файл не добавлен, допустимые форматы: txt, w3x, rar";
}
else
{

$result3 = mysql_query("INSERT INTO news (id, line, type, size) VALUES ('
$id', '$imgDir/$new_name ', '$type', '$size')",$db);
if ($result3 == '
true') {
if (copy($file, "$imgDir/".$new_name))
echo "Файл успешно добавлен";
}

}
}




Спустя 21 минута, 50 секунд (10.07.2012 - 07:51) pak написал(а):
$id = номер юзера

$imgDir = "news/".$id;
@mkdir($imgDir, 0777);

$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];

$title = pathinfo($filename, PATHINFO_FILENAME);

if(!empty($file))
{

ini_set('memory_limit', '64M');
$maxsize = "30000000";
$extentions = array("txt","w3x", "rar");
$size = filesize ($_FILES['file']['tmp_name']);
$type = strtolower(substr($filename, 1+strrpos($filename,".")));
$new_name = $id.'_'.time().'.'.$type;
if($size > $maxsize)
{
echo "Файл не добавлен, максимальный размер 30Мб";
}
elseif(!in_array($type,$extentions))
{
echo "Файл не добавлен, допустимые форматы: txt, w3x, rar";
}
else
{

$result3 = mysql_query("INSERT INTO news (id, line, type, size) VALUES ('$id', '$imgDir/$new_name ', '$type', '$size')",$db);
if ($result3 == true) {
if (copy($file, $imgDir.'/'.$new_name))
echo "Файл успешно добавлен";
}

}
}

Спустя 52 минуты, 36 секунд (10.07.2012 - 08:43) in9emix написал(а):
То есть трабла была только в этой строке?

$imgDir = "news/".$id; 

Спустя 17 минут, 3 секунды (10.07.2012 - 09:00) in9emix написал(а):
Что от не помогло в общем

Спустя 55 минут, 8 секунд (10.07.2012 - 09:56) in9emix написал(а):
У меня вообще какая то странная проблема, все отправляется теперь все супер просто, в бд летит нужная инфа но без 1 поля которое мне оч нужно. Я его убрал потому что без него не работает. у меня есть тектовое поле к файлу ...в общем описание к нему когда заливаешь на сервер. Так вот из за этого описания файл в папку и бд не летит... Проверял через echo ...выводит описание которое пишу...а на сервер не заливает...странно как то...(

вот текстареа:

<textarea class='news_textarea' name='description'></textarea>

А вот так ловлю и помещаю в переменную

if (isset($_POST['description'])) {$file_desc = $_POST['description'];}

форма вот:

<form action='/files/?q=$number' method='post' name='' target='_self' enctype='multipart/form-data'>

Спустя 1 час, 13 минут, 14 секунд (10.07.2012 - 11:09) pak написал(а):
покажите код, как вы текст записываете.

Спустя 38 минут, 49 секунд (10.07.2012 - 11:48) in9emix написал(а):
Если вы про то как в бд заношу инф-цию. то вот:
$result3 = mysql_query("INSERT INTO files (desc, id, g_id, title, url, type, size, date) VALUES    ('$file_desc', '$id', '$id_g', '$title', '$imgDir/$new_name ', '$type', '$size', '$date')",$db);      


Спустя 4 минуты, 24 секунды (10.07.2012 - 11:52) in9emix написал(а):
И вот без desc все в бд летит нормально, как только ставлю ничего не заноситься

Спустя 10 минут, 25 секунд (10.07.2012 - 12:02) pak написал(а):

$result3 = mysql_query("INSERT INTO `files`
SET
`desc` = '"
. $file_desc ."',
`id` = '"
. $id ."' ,
`q_id` = '"
. $id_g ."' ,
`title` = '"
. $title ."' ,
`url` = '"
. $imgDir."/".$new_name ."' ,
`type` = '"
. $type ."' ,
`size` = '"
. $size ."' ,
`date` = '"
. $date ."'
"
);

и еще надо экранировать специальные символы в строках функцией
mysql_real_escape_string()

типо:

`desc` = '". mysql_real_escape_string($file_desc) ."',
и так далее

Спустя 3 минуты, 34 секунды (10.07.2012 - 12:06) in9emix написал(а):
Хм, хорошо я сейчас попробую, тогда такой вопрос, если работает и без SET ? Это нормально?

Спустя 8 минут, 35 секунд (10.07.2012 - 12:15) pak написал(а):
по идее безраздници.

Спустя 4 минуты, 52 секунды (10.07.2012 - 12:19) in9emix написал(а):
попробовал, что то не получается вовсе, блин первый раз с такой ерундой сталкиваюсь... всегда все было успешно

Спустя 11 минут, 30 секунд (10.07.2012 - 12:31) pak написал(а):
какая ошибка?

Спустя 28 минут, 47 секунд (10.07.2012 - 13:00) in9emix написал(а):
Ошибки никакой, просто пустота

Спустя 2 минуты, 10 секунд (10.07.2012 - 13:02) pak написал(а):
а в базе смотрели, что записилось?

Спустя 42 минуты, 4 секунды (10.07.2012 - 13:44) in9emix написал(а):
В бд ничего не записывается, и на сервер ничего не летит (

Спустя 13 минут, 35 секунд (10.07.2012 - 13:58) inpost написал(а):
Может лучше четче сказать, что ФАЙЛЫ не передаются, а остальные данные с формы передаются? Показывай форму. Я уверен, что у тебя неверно записан enctype

Спустя 51 минута, 22 секунды (10.07.2012 - 14:49) in9emix написал(а):
<form action='/news/?id=$id' method='post' name='' target='_self' enctype='multipart/form-data'>
<
div class='news_g'><textarea class='textarea_t' name='desc' placeholder='Введите описание файла'></textarea></div>
<
div class='setting_g'>
<
div class='send'><span class='alignt'>Прикрепить файл:</span><input class='inp' name='file' type='file'></div>
<
div class='public'><span class='alignt'><input class='lic' type='submit' value='Загрузить' name='file'></span></div>
<
input type='hidden' name='id' value='$id_ok'>
</
div>
</
form>

Спустя 35 минут, 20 секунд (10.07.2012 - 15:24) inpost написал(а):
По стандарту надо использовать двойные кавычки.
Выведи массив $_FILES, он пустой?

Спустя 20 минут, 52 секунды (10.07.2012 - 15:45) in9emix написал(а):
вывел через : $file = $_FILES['file']['tmp_name'];

пишет вот что: /tmp/phpПробное описание файла

Пробное описание файла - это текст который я набрал в текстарее

Тут мне понятно стало что вот поэтому то и не заливается все на хостинг и не попадает в бд ничего...потому что видать текст набранный мною в текстарее и файл выбранный конфликтуют друг с другом и заменяют друг друга...

Поэтому не работает... (это лично моя догадка)...ребят я уже не знаю как быть( ...

Спустя 16 минут, 28 секунд (10.07.2012 - 16:02) inpost написал(а):
имя файла надо рандомно генерировать!

Спустя 26 минут, 35 секунд (10.07.2012 - 16:28) in9emix написал(а):
Это как? Вы мне можете помочь в моей ситуации?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.