| |
|
|
| | Возникла проблема в скрипте загрузки файла на сервер...
Вообщем вот скрипт:
<?php
if(!$_SESSION['fname'])
{
echo "Прежде чем загружать файлы, вам необходимо пройти <a href='register.php'>регистрацию</a>";
}
else
{
$max_size = 4 *1024 * 1024;
$valid_types = array("3gp","mp4", "gif", "wav", "mid", "avi", "jpg", "mp3", "amr", "mmf");
$date = date("d-m-y", time());
$dir = "./base/".$date."/";
if($_POST['sub'])
{
if(!$_POST['nickname'] || !$_POST['info'])
{
echo 'Заполните все поля';
include('footer.php');
exit();
}
else
if($_POST['folder'] == '0')
{
echo 'Выберите категорию';
include('footer.php');
exit();
}
else
{
$filename = $_FILES['userfile']['tmp_name'];
$name = $_FILES['userfile']['name'];
$ext = substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'], "."));
if(filesize($filename) > $max_size)
{
echo '<span style="color:red; font-weight: bold">Слишком большой файл</span>';
}
else
if(!in_array($ext, $valid_types))
{
echo '<span style="color:red; font-weight: bold">Неверный формат файла...</span>';
}
else
{
mkdir($dir, 0777);
$num = 1;
while(file_exists($dir.$name))
{
++$num;
$file_name = $num.$name;
$name = $file_name;
}
if(copy($filename, $dir.$name))
{
$_POST['folder'] = intval($_POST['folder']);
if (!get_magic_quotes_gpc())
{
$_POST['nickname'] = mysql_escape_string($_POST['nickname']);
$_POST['info'] = mysql_escape_string($_POST['info']);
$name = mysql_escape_string($name);
}
$query = "INSERT INTO `files` VALUES(NULL, '".$_POST['folder']."', '".$name."', '".filesize($filename)."', '".$_POST['info']."', '' ,'".$_POST['nickname']."', '".date("d-m-y", time())."' , '".$_SERVER['REMOTE_ADDR']."')";
if(mysql_query($query))
{
echo "Файл успешно загружен";
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php?cat=".$_POST['folder']."'></HEAD></HTML>";
}
else
{
exit("Ошибка при добавлении файла- ".mysql_error());
}
}
else
{
echo '<span style="color:red; font-weight: bold">Ошибка....</span>';
}
}
}
}
?>
<br />
<br />
<form enctype="multipart/form-data" method="post"><b>Форма загрузки:</b><br />
<span style="color:red; font-weight: bold">*</span> Описание:<br/>
<textarea name="info" maxlength="300"></textarea><br/>
<span style="color:red; font-weight: bold">*</span> Ваше имя (ник):<br/>
<input type="text" name="nickname" value="<?php echo $_SESSION['fname']; ?>" /><br/>
<span style="color:red; font-weight: bold">*</span>Раздел:<br/>
<select name="folder">
<option value="0">Выбрать...</option>';
<?php
$query = "SELECT * FROM `cat` ORDER BY `id` DESC";
$result = mysql_query($query);
for($i = 0; $i < mysql_num_rows($result); $i++)
{
$row = mysql_fetch_array($result);
echo "<option value=".$row['id'].">".$row['cat']."</option>";
}
echo "</select><br />";
?>
<span style="color:red; font-weight: bold">*</span> Файл (не более 4 мб):<br/>
<input type="file" name="userfile" /><br/>
<input type="submit" name="sub" value="Загрузить" />
</form>
<?php
}
?>
|
Ничего в скрипте сверхестественного нету....
Возвращает false функции copy...
Не понятно почему, но картинки загружает нормально, а вот мп3 файлы не хочет.... | |
| |
|
|
| |
|
|
| |
для: SnooPI
(10.12.2007 в 19:32)
| | | Потому, что в php.ini установлено:
upload_max_filesize = 2M | |
| |
|
|
| |
|
|
| |
для: sim5
(10.12.2007 в 19:42)
| | | Добавил поле
<input type="hidden" name="MAX_FILE_SIZE" value="4000000">
Все равно выводит ошибку...
Может еще в скрипте что-то подправить надо? | |
| |
|
|
| |
|
|
| |
для: SnooPI
(10.12.2007 в 22:07)
| | | Эту настройку нужно править в файле php.ini | |
| |
|
|
| |
|
|
| |
для: Trianon
(10.12.2007 в 22:11)
| | | В PHP <= 4.2.3 был шанс править эту опцию и через .htaccess/ini_set() :) | |
| |
|
|
| |
|
|
| |
для: Unkind
(10.12.2007 в 23:12)
| | | А позже дыру прикрыли.
Всяко это настройка администратора хостинга, а не владельца эккаунта. | |
| |
|
|
| |
|
|
| |
для: Trianon
(10.12.2007 в 23:14)
| | | А я и не сомневался. | |
| |
|
|