[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заливка фото на сервер
Sprut
Здраствуйте, На локальном сервере организовал добавление изображения в папку сайта через форму

<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 он станет доступен??? я правельно понял?))

Спустя 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); //Прописал в начале файла с отправкой формы
?>
все равно не робит...

Спустя 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: а вручную это где?))

Спустя 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» не может быть показано, так как содержит ошибки.

Спустя 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?
Пожалуйста обясните по подробнее я в этом деле новичок.
Быстрый ответ:

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