|
|
|
| В первом коде - картинка грузится в папку img/logo_pu, а во втором - нет.
Вопрос - где ошибка?
<?php
/**
* Function of uploaded of a file
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
*
* @author IT studio IRBIS-team (www.irbis-team.com)
* @copyright © 2009 IRBIS-team
*/
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{
$error = null;
$info = null;
$max_file_size *= 1024;
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(
UPLOAD_ERR_INI_SIZE =>
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE =>
'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
);
$error_code = $_FILES['userfile']['error'];
if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}
return array('info' => $info, 'error' => $error);
}
/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="radio" name="logo" value="old"> оставить старый логотип<br>
<input type="radio" name="logo" value="new"> загрузить новый<br>
<input type="radio" name="logo" value="no_im"> нет логотипа
<input type="file" name="userfile" />
<input type="submit" value="Закачать" name="upload_submit" />
</form>
|
<?php
/**
* Function of uploaded of a file
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
*
* @author IT studio IRBIS-team (www.irbis-team.com)
* @copyright © 2009 IRBIS-team
*/
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{
$error = null;
$info = null;
$max_file_size *= 1024;
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(
UPLOAD_ERR_INI_SIZE =>
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE =>
'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
);
$error_code = $_FILES['userfile']['error'];
if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}
return array('info' => $info, 'error' => $error);
}
/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>
<form name="add" method='post' action='pu_add.php' enctype="multipart/form-data">
<table>
<tr>
<td width="200" valign="top"><b>Название организации:</b></td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<input value= "<?php echo $_GET['title']; ?>" type="text" name="title">
</td>
</tr>
<tr>
<?php
if (!empty($_GET['logo'])) {
printf ("<td><input type='radio' name='userfile' value='old'> оставить старый логотип<br></td>
<td><img src='%s'></td>
</tr><tr>
<td><input type='radio' name='userfile' value='new'> загрузить новый<br> </td>
<td> <input type='file' name='filename'></td>
</tr><tr>
<td><input type='radio' name='userfile' value='no_im'> нет логотипа</td>
<td></td>", $_GET["logo"]);}?>
<?php
if (empty($_GET['logo'])) {
printf ("<td><input type='radio' name='userfile' value='new'> загрузить логотип<br> </td>
<td> <input type='file' name='filename'></td>
</tr><tr>
<td><input type='radio' name='userfile' value='no_im'> нет логотипа</td>
<td></td>", $_GET["logo"]);}?>
</tr>
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
<label>
<input type="submit" name="submit" id="submit" value="Сохранить изменения">
</label>
</form>
|
| |
|
|
|
|
|
|
|
для: Василий
(03.01.2012 в 23:19)
| | есть такая полезная функция как eror_reporting()
вот при помощи неё выставляете уровень ошибок на полную, после неё выводите дамп массива $_FILES и смотрите/сверяете/ проверяете все данные....
ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку
p.s перестаньте тупо/слепо копироват код.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(03.01.2012 в 23:59)
| | // Сообщать обо всех ошибках PHP (использовать битовое 63 в PHP 3)
error_reporting (E_ALL);
ни одной ошибки! | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 00:31)
| | все одинаковое, только
в 1-м случае [tmp_name] => /tmp/phpHmvJzw
во 2-м - [tmp_name] => /tmp/phpZ5palh | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 00:35)
| | >ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку
не там ищите, ищите дальше.... | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 00:35)
| | ошибка у Вас в имени поля для выбора файла.... это подсказка... ищите ошибку
как может быть ошибка если во всех двух файлах одинаковый путь:
$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
|
| |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 00:41)
| | Да при чём тут путь?
Вы когда читаете, что Вам пишут, Вы всё понимаете?
Вы понимаете, что значит "ошибка в имени поля для выбора файла"?
Какие имена индексов в массиве $_FILES? | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 00:45)
| | вот имена:
Array
(
[userfile] => Array
(
[name] => Безымянный.png
[type] => image/png
[tmp_name] => /tmp/phpHmvJzw
[error] => 0
[size] => 69972
)
)
|
| |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 00:47)
| | это в обоих скриптах показывает?
во втором скрипте у Вас имя поля "filename" | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 00:54)
| | 1 вариант
Array
(
[userfile] => Array
(
[name] => yutex.png
[type] => image/png
[tmp_name] => /tmp/phpZnY9Gy
[error] => 0
[size] => 92734
)
)
|
2 вариант
Array
(
[userfile] => Array
(
[name] => yutex.png
[type] => image/png
[tmp_name] => /tmp/phpAjJH0M
[error] => 0
[size] => 92734
)
)
|
ОДно и тоже. Но второй вариант - файл падает в папку, в первм - нет | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 01:02)
| | во всех двух файлах используется
// Запускаем функцию
if(!empty($_POST['upload_submit']))
Но:
1 вариант имеет <input type="submit" value="Закачать" name="upload_submit" />
2 вариант - <input type="submit" name="submit" id="submit" value="Сохранить изменения">
Как привести к одному знаменателю? | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 01:13)
| | Вместо
input type="submit" name="submit" id="submit" value="Сохранить изменения">
Написал:
input type="submit" name="upload_submit" id="submit" value="Сохранить изменения">
и все равно безрезультатно | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 01:18)
| | Тему закрываем! | |
|
|
|