[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заливка файлов
Kukaramba
Есть у кого готовый вариант для заливки файлов (фото, видео и др.) +запись в бд - с информацией - куда залил?



Спустя 28 минут, 11 секунд (21.08.2012 - 09:40) Kukaramba написал(а):
Вообще интересует любой пример загрузчика на PHP в MySQL. Если будут какие нибудь мульки по проверке размера или типа файла - будет вообще здорово.
Хочу загружать файлы на сервер через форму. Помещать их в каталок. В базе данных прописывать путь к этим файлам.

Спустя 12 минут, 18 секунд (21.08.2012 - 09:52) Michael написал(а):

Спустя 52 секунды (21.08.2012 - 09:53) pak написал(а):

Спустя 21 минута, 11 секунд (21.08.2012 - 10:14) Kukaramba написал(а):
Цитата (Michael @ 21.08.2012 - 07:52)
тыц

Спасибо, конечно, но без опыта поиска я бы сюда и не писал.

Цитата (pak @ 21.08.2012 - 07:53)
http://irbis-team.com/15/13/2

Хороший пример) Но как мне еще и записать в БД имя файла, путь к нему и какой нибудь уникальный номер?

Спустя 18 минут, 23 секунды (21.08.2012 - 10:33) Kukaramba написал(а):
Понравился такой скрипт загрузки. Как в нем добавить возможность сохранения информации о файле в БД?

Свернутый текст
<?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.
*/



//Данные для ведения логов
$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'], '../uploads/'.$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);

}

?>


И в этом - php

Свернутый текст
<?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 = $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="file_upload.php" method="post" enctype="multipart/form-data">
<
input type="file" name="userfile" />
<
input type="submit" value="Закачать" name="upload_submit" />
</
form>

Спустя 15 минут, 13 секунд (21.08.2012 - 10:48) johniek_comp написал(а):
вот те имя $_FILES['userfile']['name'], бери и пиши его в таблицу в чем проблемы?

Спустя 14 минут, 56 секунд (21.08.2012 - 11:03) Kukaramba написал(а):
Можно пример? Я немного пока еще понимаю в запросах. В каком месте вставить строки. Это должно быть вида
INSERT TO `table` VALUES $userfile=$row[userfile], $name=$row[name]....

Так?

Спустя 33 минуты, 49 секунд (21.08.2012 - 11:37) johniek_comp написал(а):
Kukaramba
ёклмн, скачай книжку какую-нибудь и прочти, ты совсем ничего не знаешь

Спустя 36 минут, 48 секунд (21.08.2012 - 12:14) dron4ik написал(а):
<FORM ENCTYPE="multipart/form-data" ACTION="myup.php" METHOD=POST>
Выберете файл: <INPUT NAME="myfile" TYPE="file">
<INPUT
TYPE="submit" VALUE="Загрузить">
</FORM>

<?php

// Загрузка файлов на сервер
// Если register_globals=Off

// Если upload файла

if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];

// Если ошибок не было
if($error_flag == 0)
{
print("Имя файла на нашем сервере (во время запроса): ".$myfile."<br>");
print("Имя файла на компьютере пользователя: ".$myfile_name."<br>");
print("MIME-тип файла: ".$myfile_type."<br>");
print("Размер файла: ".$myfile_size."<br><br>");

// Получаем содержимое файла
$fp = fopen($myfile,"r");
$content = fread($fp, filesize($myfile));
fclose($fp);

// Вывод содержимого файла
print($content);
$query="insert into images values ('$_FILES['userfile']['name']');";
if (!mysql_query($query))
{
echo "error:".mysql_error()."<br>";
exit();
}

}
// end of if 2
} // end of if 1
?>


Спустя 1 час, 9 минут, 1 секунда (21.08.2012 - 13:23) Kukaramba написал(а):
Пытаюсь использовать $_FILES['userfile']['name']
Как правильно вставить это? Пробую так - ничего не выходит.

Свернутый текст
include 'db_connect.php';			
$upd = "INSERT INTO `images`
(name,userfile)
VALUES
('
$_FILES['userfile']['name']')
"
;
$query = mysql_query($upd);
if(!$query){
echo '<p>Не удалось отредактировать!</p>';
}
else{
echo '<p>Данные успешно отредактированы!</p>';
}

Спустя 32 минуты, 45 секунд (21.08.2012 - 13:55) dron4ik написал(а):
$_FILES["myfile"]["name"] пробуй

Спустя 21 минута, 31 секунда (21.08.2012 - 14:17) dron4ik написал(а):
Кокой нейм у инпута отправки картинки?
Быстрый ответ:

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