Спустя 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
Свернутый текст
<?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 написал(а):
Кокой нейм у инпута отправки картинки?