<form action="new_news.php" method="post" style="width:550px; margin:0 auto;" enctype="multipart/form-data">
Название новости<br />
<input type="text" name="name_news" size="80"><br />
Фото новости<br />
<input type="file" name="photo" size="40"><br />
<br />Краткое описание<br />
<textarea rows="10" name="descc" cols="66"></textarea>
<br />Полное описание<br />
<textarea rows="40" name="text" cols="66"></textarea><br>
<input type="submit" value="Добавить" name="submit"><br><br><br><br><br><br><br>< br>
</form>
<?
} else {
if (isset($name_news) && isset($descc) && isset($text) && isset($photo)) {
$x1 = rand(1,999);
$x2 = rand(1,999);
$x3 = rand(1,999);
$x4 = rand(1,999);
$x5 = rand(1,999);
$filename = "../images/".$photo;
if (file_exists($filename)){$photo_new = $x1.$x2.$x3.$x4.$x5.$photo; } else {$photo_new = $photo;}
if(!copy($_FILES["photo"]["tmp_name"], "../images/".$photo_new) )
{ echo "Ошибка загрузки файла<br>"; }
if ( $result = mysql_query("INSERT INTO news (title,description,text,image) VALUES ('$name_news','$descc','$text','$photo_new') ") ) {
?> <div style="width:550px; margin:0 auto;"> <?
echo "<h2>Новость добавлена</h2>";
?> </div> <?
} else {echo "Новость не добавлена!!";}
} else {
echo "<h2>Вы ввели не все поля!!</h2>";
}
}
?>
На локальном сервере все хорошо работает и отображается, но когда залил файлы на сервер, при добавлении изображения на сайте в интернете с файлом происходит какая то ошибка. То есть сам файл заливается в нужную папку с нужным названием, но он не читается, даже если его обратно с фтп скачать он не открывается уже. Как будто испортился из-за чего то. Подскажите пож-та из-за чего может так быть...
Спустя 7 минут, 51 секунда (27.02.2011 - 23:38) Sopromatenot написал(а):
http://irbis-team.com/15/13/2 тут почитай.
Спустя 42 минуты, 16 секунд (28.02.2011 - 00:20) Guest написал(а):
Array
(
[name] => img3ddff.png
[type] => image/png
[tmp_name] => /var/tmp/php9Gazfk
[error] => 0
[size] => 21383
)
нет ошибок, насколько я понял из прочитанного, когда я закачиваю файл на сервер, первый раз он как бы еще не читаем, потому что он как бы помещен во временную дерикторию, и только после того как я проверю его и использую функцию move_uploaded_file он станет доступен??? я правельно понял?))
(
[name] => img3ddff.png
[type] => image/png
[tmp_name] => /var/tmp/php9Gazfk
[error] => 0
[size] => 21383
)
нет ошибок, насколько я понял из прочитанного, когда я закачиваю файл на сервер, первый раз он как бы еще не читаем, потому что он как бы помещен во временную дерикторию, и только после того как я проверю его и использую функцию move_uploaded_file он станет доступен??? я правельно понял?))
Спустя 10 часов, 57 минут, 54 секунды (28.02.2011 - 11:18) Guest написал(а):
все равно файл не читается, даже после move_uploaded_file ((
Спустя 3 часа, 31 минута, 28 секунд (28.02.2011 - 14:49) Guest написал(а):
Скачал загрузчик отсюда http://irbis-team.com/15/13/2
точно такая же беда, походу не у меня в коде ошибка а на серваке чето с настройками...
точно такая же беда, походу не у меня в коде ошибка а на серваке чето с настройками...
Спустя 3 минуты, 59 секунд (28.02.2011 - 14:53) Snus написал(а):
Guest
права на директорию выставь
права на директорию выставь
Спустя 54 минуты, 58 секунд (28.02.2011 - 15:48) Guest написал(а):
вот так?
<?
chmod("images", 0777); //Прописал в начале файла с отправкой формы
?>
все равно не робит...
<?
chmod("images", 0777); //Прописал в начале файла с отправкой формы
?>
все равно не робит...
Спустя 8 минут, 53 секунды (28.02.2011 - 15:57) Snus написал(а):
Guest
Исполняемый скрипт и директория находится на одном уровне?
Исполняемый скрипт и директория находится на одном уровне?
root
sript.php <---
images <---
img.jpg
img2.jpg
Спустя 29 секунд (28.02.2011 - 15:58) AlmazDelDiablo написал(а):
Через FTP зайди на хост и выставь права вручную.
Спустя 7 минут, 24 секунды (28.02.2011 - 16:05) Guest написал(а):
1: да конечно, на одном уровне
2: а вручную это где?))
2: а вручную это где?))
Спустя 1 минута, 34 секунды (28.02.2011 - 16:07) Snus написал(а):
Guest
А вообще не забивай себе голову. Возьми в инете готовый скрипт загрузки файлов и все.
А вообще не забивай себе голову. Возьми в инете готовый скрипт загрузки файлов и все.
Спустя 2 минуты, 41 секунда (28.02.2011 - 16:09) Guest написал(а):
брал проверить и готовый код... вот отсюда http://irbis-team.com/15/13/2
точно такая же проблема...)))
точно такая же проблема...)))
Спустя 21 минута, 4 секунды (28.02.2011 - 16:30) Evilsoul написал(а):
Цитата |
2: а вручную это где?)) |
покажи скрин с директориями, файлами.
а вообще если он записывается но не читается, то мне кажется что ты не правильно вывод делаешь.
Спустя 15 минут, 1 секунда (28.02.2011 - 16:45) Guest написал(а):
сейчас я оставил только папку images и готовый файл отправки
[images]
[upload.php]
<?php
chmod("images", 0777 ); // здесь меняем права
echo PHP_VERSION;
/**
* 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 = $upload_dir .'/' . $_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="file" name="userfile" />
<input type="submit" value="Закачать" name="upload_submit" />
</form>
вывод правельный, потому что файлы которые я заливаю в папку через фтп отображаются, а картинки которые были закачаны через форму - не открываются
Изображение «http://***h18.ru/images/oplat.png» не может быть показано, так как содержит ошибки.
[images]
[upload.php]
<?php
chmod("images", 0777 ); // здесь меняем права
echo PHP_VERSION;
/**
* 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 = $upload_dir .'/' . $_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="file" name="userfile" />
<input type="submit" value="Закачать" name="upload_submit" />
</form>
вывод правельный, потому что файлы которые я заливаю в папку через фтп отображаются, а картинки которые были закачаны через форму - не открываются
Изображение «http://***h18.ru/images/oplat.png» не может быть показано, так как содержит ошибки.
Спустя 11 минут, 8 секунд (28.02.2011 - 16:57) Guest написал(а):
кому не трудно на своем хостинге создайте папку images и скопируйюте этот файл если у вас картинка загруженная будет отображаться, то значит точно на серваке проблемы какие то) (достал я наверно уже всех)
Спустя 20 минут, 36 секунд (28.02.2011 - 17:17) Guest написал(а):
Из любопытсва зарегился на другом хостинге, все работает... , чето на хостинге значит не очень хорошо прописано, всем спасибо кто помогал))
Спустя 8 минут, 12 секунд (28.02.2011 - 17:25) Evilsoul написал(а):
Да, именно, хостинги которые бесплатные - корявые.
Спустя 18 дней, 2 часа, 47 минут, 16 секунд (16.03.2011 - 20:13) Гость_Руслан написал(а):
<?php
/**
* Swiff.Uploader Example Backend
*
* This file represents a simple logging, validation and output.
* *
* WARNING: If you really copy these lines in your backend without
* any modification, there is something seriously wrong! Drop me a line
* and I can give you a good rate for fancy and customised installation.
*
* No showcase represents 100% an actual real world file handling,
* you need to move and process the file in your own code!
* Just like you would do it with other uploaded files, nothing
* special.
*
* @license MIT License
*
* @author Harald Kirschner <mail [at] digitarald [dot] de>
* @copyright Authors
*
*/
/**
* Only needed if you have a logged in user, see option appendCookieData,
* which adds session id and other available cookies to the sent data.
*
* session_name('SID'); // whatever your session name is, adapt that!
* session_start();
*/
// Request log
/**
* You don't need to log, this is just for the showcase. Better remove
* those lines for production since the log contains detailed file
* information.
*/
if (isset($_GET['put'])) {$put = $_GET['put']; }
//Данные для ведения логов
$result = array();
$result['time'] = date('r');
$result['addr'] = substr_replace(gethostbyaddr($_SERVER['REMOTE_ADDR']), '******', 0, 6);
$result['agent'] = $_SERVER['HTTP_USER_AGENT'];
if (count($_GET)) {
$result['get'] = $_GET;
}
if (count($_POST)) {
$result['post'] = $_POST;
}
if (count($_FILES)) {
$result['files'] = $_FILES;
}
if (file_exists('script.log') && filesize('script.log') > 102400) {
unlink('script.log');
}
//Запись данных в лог файл
$log = @fopen('script.log', 'a');
if ($log) {
fputs($log, print_r($result, true) . "\n---\n");
fclose($log);
}
//Изначально у нас нет ошибок
$error = false;
//Определяем, был ли файл загружен при помощи HTTP POST
if (!isset($_FILES['Filedata']) || !is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
$error = 'Invalid Upload';
}
//Проверяем размер загружаемых файлов
if (!$error && $_FILES['Filedata']['size'] > 2 * 1024 * 1024){
$error = 'Размер загружаемого файла не должен превышать 2 Мб';
}
//При желание вы можете добавить другие проверки
//Если появились ошибки возвращаем их
if ($error) {
$return = array(
'status' => '0',
'error' => $error
);
} else {//Если ошибок нет
$return = array(
'status' => '1',
'name' => $_FILES['Filedata']['name']
);
//Получаем информацию о загруженном файле
$info = @getimagesize($_FILES['Filedata']['tmp_name']);
if ($info) {
$return['width'] = $info[0];//ширина картинки в пикселях
$return['height'] = $info[1];//высота в пиксилях
}
$filename = $_FILES['Filedata']['name'];//Определяем имя файла
$ext = substr($filename,strpos($filename,'.'),strlen($filename)-1);//Определяем расширение файла
$new = date("Ymd")."_".rand(1000,9999).$ext;//Генерируем новое имя файла во избежании совпадения названий
$return['new'] = $new;//Возвращаем имя нового файла
if(!move_uploaded_file($_FILES['Filedata']['tmp_name'], '../../../images/'.$put.'/'.$new)) //Загружаем файл с новым именем.
//Не забудьте установить на каталог uploads права на запись 755 или 777
{
$return = array(
'status' => '0',
'error' => 'Загрузка не удалась'
);
}
}
if (isset($_REQUEST['response']) && $_REQUEST['response'] == 'xml') {
// header('Content-type: text/xml');
// Really dirty, use DOM and CDATA section!
echo '<response>';
foreach ($return as $key => $value) {
echo "<$key><![CDATA[$value]]></$key>";
}
echo '</response>';
} else {
// header('Content-type: application/json');
echo json_encode($return);
}
?>
как сделать чтоб при загрузке фотографий на сервер сразу же менялось размеры на 800x600?
Пожалуйста обясните по подробнее я в этом деле новичок.