[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файлов на сервер
in9emix
Есть рабочий код который я хочу малость исправить под себя. У меня есть id сессии которое храниться в переменной $id. По умолчанию в этом коде файл помещается в папку uploads/имя_файла.расширение

Мне надо что бы было так uploads/$id/имя_файла.расширение

И так, сначало код который был по умолчанию, а ниже код который уже исправил я. Проблема в том что папка то создается в uploads но файл туда не летит...Однако если я удаляю папку uploads то после обновление на сервере смотрю и файл который я загрузил, появляется...

<?
$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
if(!empty($file))
{
ini_set('memory_limit', '32M');
$maxsize = "100000000";
$extentions = array( "gif","txt","tpl","jpg","jpeg","png",& ;quo t;zip", "rar","7z","tif","psd","swf","flv"," avi","mpeg","mp4","mp3","wav", "ogg","ogm","doc","xls","ppt");
$size = filesize ($_FILES['file']['tmp_name']);
$type = strtolower(substr($filename, 1+strrpos($filename,".")));
$new_name = 'file-'.time().'.'.$type;
if(
$size > $maxsize)
{
echo "
Файл больше 100 мб. Уменьшите размер вашего файла или загрузите другой. <br><a href='' onClick=window.close();>Закрыть окно</a>";
}
elseif(!in_array(
$type,$extentions))
{
echo ' <b>Файл имеет недопустимое расширение</b>. Допустимыми являются форматы изображений, видеофайлов, флэш-роликов и текстовых документов. <br>';
}
else
{
if (copy(
$file, "uploads/".$new_name))
echo "
Файл загружен!<br>Скопируйте адрес файла<br> <a href=\"uploads/$new_name\"><b>http://site.com/uploads/$new_name</b></a><br> и нажмите<br><a href='' onClick=history.back();>Вернуться назад</a>";
else echo "Файл НЕ был загружен.";
}
}

?>





Вот то что исправил я:




<?
$imgDir = "$id";
@mkdir($imgDir, 0777);




И ниже где путь uploads я вставил $imgDir



$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
if(!empty($file))
{
ini_set('memory_limit', '32M');
$maxsize = "100000000";
$extentions = array( "gif","txt","tpl","jpg","jpeg","png",& ;quo t;zip", "rar","7z","tif","psd","swf","flv"," avi","mpeg","mp4","mp3","wav", "ogg","ogm","doc","xls","ppt");
$size = filesize ($_FILES['file']['tmp_name']);
$type = strtolower(substr($filename, 1+strrpos($filename,".")));
$new_name = 'file-'.time().'.'.$type;
if(
$size > $maxsize)
{
echo "
Файл больше 100 мб. Уменьшите размер вашего файла или загрузите другой. <br><a href='' onClick=window.close();>Закрыть окно</a>";
}
elseif(!in_array(
$type,$extentions))
{
echo ' <b>Файл имеет недопустимое расширение</b>. Допустимыми являются форматы изображений, видеофайлов, флэш-роликов и текстовых документов. <br>';
}
else
{
if (copy(
$file, "uploads/$imgDir/".$new_name))
echo "
Файл загружен!<br>Скопируйте адрес файла<br> <a href=\"uploads/$new_name\"><b>http://site.com/uploads/$new_name</b></a><br> и нажмите<br><a href='' onClick=history.back();>Вернуться назад</a>";
else echo "Файл НЕ был загружен.";
}
}

?>




Помогите, что бы файл заносился :(



Спустя 21 минута, 19 секунд (27.06.2012 - 12:06) Gabriel написал(а):
Оу, оу, ооооу, тегами отформатируй, ибо простыня совсем не читабельная.

Спустя 10 минут, 45 секунд (27.06.2012 - 12:17) in9emix написал(а):
Все, только помогите пожалуйста. ohmy.gif

Спустя 7 минут, 10 секунд (27.06.2012 - 12:24) Gabriel написал(а):
1. $imgDir подключена?
2. mkdir кажись там папки не хватает....

Спустя 2 минуты, 19 секунд (27.06.2012 - 12:26) in9emix написал(а):
Ну $imgDir у меня в теге <? ..... ?> Получается что подключена

Спустя 1 минута, 30 секунд (27.06.2012 - 12:28) in9emix написал(а):
Но там сейчас id пользователя только....

В общем у меня все так как во втором большом коде

Спустя 5 минут, 19 секунд (27.06.2012 - 12:33) in9emix написал(а):
Все все все...вы были правы надо было папку прописать...блин точно)))))) СПАСИБО!!!!!!

Спустя 18 секунд (27.06.2012 - 12:34) Gabriel написал(а):
и не нужно давить ошибку собакой, сделай проверку на существование папки

Спустя 1 час, 48 минут, 59 секунд (27.06.2012 - 14:23) in9emix написал(а):
А вот еще такой вопрос, в переменной
$filename = $_FILES['file']['name'];
оригинальное название и расширение файла, а как мне вытащить только название? а то в бд попалает такое: Зимний_сад.jpg

Я хотел бы что бы попадало только название в бд, а расширение .jpg удалялось

Спустя 4 минуты, 33 секунды (27.06.2012 - 14:27) fdr написал(а):
pathinfo() - в помошь!

Спустя 2 минуты, 23 секунды (27.06.2012 - 14:29) Gabriel написал(а):
не пихать в переменную $new_name переменную $type и вызывать их там где нужно вместе, а где нет то по одной.
ЗЫ. как сказали выше ябы таки воспользовался и переписалбы извращение с определением типа файла.
ЗЫ2. имя фала без расширения используется в качестве названия или в ссылке?

Спустя 11 минут, 32 секунды (27.06.2012 - 14:41) in9emix написал(а):
Мне надо в качестве названия вытащить(

Спустя 47 секунд (27.06.2012 - 14:42) in9emix написал(а):
просто взять и вытащить оригинальное название sad.gif

Спустя 10 минут, 32 секунды (27.06.2012 - 14:52) Gabriel написал(а):
сор, неправильно прочитал. выше сказали про path_info

Спустя 23 минуты, 31 секунда (27.06.2012 - 15:16) in9emix написал(а):
Попробовал так: $test = pathinfo($_FILES['name']);


не получилось(

Спустя 30 минут, 16 секунд (27.06.2012 - 15:46) fdr написал(а):
Попробовал так: $test = pathinfo($_FILES['name']);

надо эту переменную пихать - $_FILES['file']['name'];

Спустя 3 минуты, 51 секунда (27.06.2012 - 15:50) in9emix написал(а):
Такой вариант возвращает точку вместе названия: echo $trest['dirname'];

Спустя 6 минут, 45 секунд (27.06.2012 - 15:57) fdr написал(а):
$test - по идее будет массивом.
Что тебе нужно получить?
Оригинальное название файла так оно и есть $_FILES['file']['name'];
Если тебе нужно без разрешение, только имя файла...
$test = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME);

Спустя 13 минут, 58 секунд (27.06.2012 - 16:11) in9emix написал(а):
fdr, вот как сделал:

$test = pathinfo($_FILES['file']['name']);
echo $test;


И выводит Array

Спустя 1 минута, 39 секунд (27.06.2012 - 16:12) in9emix написал(а):
ок сейчас попробую

Спустя 1 минута, 30 секунд (27.06.2012 - 16:14) in9emix написал(а):
Вы правы мне нужно без расширения....без jpg, mp3, png и т.д...

Ваш вариант:

$test = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME);


Вывел с расширением (

Спустя 5 минут, 28 секунд (27.06.2012 - 16:19) fdr написал(а):
не может быть))))
$file = 'image.jpg';
echo pathinfo($file, PATHINFO_FILENAME);
// результат
// image

Спустя 3 минуты, 6 секунд (27.06.2012 - 16:22) pak написал(а):

$path = pathinfo($_FILES['file']['name']);
echo $path['filename']; // начиная с PHP 5.2.0


Спустя 4 минуты, 23 секунды (27.06.2012 - 16:27) fdr написал(а):
pak
Цитата
// начиная с PHP 5.2.0

вы наверное имели в виду до)))

Спустя 5 минут, 16 секунд (27.06.2012 - 16:32) pak написал(а):
fdr
именно ключ filename начиная с PHP 5.2.0
читал на php.net =)

Спустя 5 минут, 25 секунд (27.06.2012 - 16:37) fdr написал(а):
pak
Цитата
именно ключ filename начиная с PHP 5.2.0
читал на php.net =)

страннно))) у меня в мануале иначе)))

Спустя 2 минуты, 50 секунд (27.06.2012 - 16:40) in9emix написал(а):
Все, ура ура, заработало, благодарю всех! Очень помогли!

Спустя 18 секунд (27.06.2012 - 16:41) pak написал(а):
Цитата (fdr @ 27.06.2012 - 13:37)
pak
Цитата
именно ключ filename начиная с PHP 5.2.0
читал на php.net =)

страннно))) у меня в мануале иначе)))

Спустя 6 минут, 28 секунд (27.06.2012 - 16:47) fdr написал(а):
pak
Угу)))
Я почему то на это смотрел)
Цитата
5.2.0 Добавлена константа PATHINFO_FILENAME.


Быстрый ответ:

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