Ъплоад форма за изображения

Msecurity

Registered
Здравейте отново колеги, мисля да си подосаждам отново :D
Трябва ми ъплоад форма като на този сайт, качваш изображението и то си отива директно в БД?

Предполагам че ми е тъп въпроса но...
Всички варианти който пробвах само си качват изображението и до там, после аз сам трябва да му въведа името в базата данни...
 
Драснах ти нещо подобно току що ;)

database.sql
[sql]
CREATE TABLE IF NOT EXISTS `files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`file` text NOT NULL,
`opisanie` text NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
[/sql]


config.php
PHP:
<?php
if ($access == "true")
{
mysql_connect("localhost","потребител","парола");
mysql_select_db("база данни");
}
else
{
?>
ACCESS DENIED.
<?php
}
?>


index.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Web-Tourist Project [Upload]: Файлове</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<a href="index.php">Начало</a> | <a href="upload.php">Качи файл</a><br /><br /><br />
<?php
$access = "true";
include_once "config.php";
$a = mysql_query("SELECT * FROM `files` ORDER by `id` DESC") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
while ($c = mysql_fetch_array($a))
{
$file = $c['file'];
$opisanie = htmlspecialchars($c['opisanie']);
?>
<table style="border: 1px #DEDEDE solid;">
<tr>
<td style="width: 120px; height: 96px; vertical-align: top;"><a href="<?php echo $file; ?>" target="_blank"><img src="<?php echo $file; ?>" width="120" height="96" alt="<?php echo $opisanie; ?>" border="0" /></a></td>
<td style="width: 500px; vertical-align: top;"><a href="<?php echo $file; ?>" target="_blank"><?php echo $opisanie; ?></a></td>
</tr>
</table><br />
<?php
}
}
else
{
?>
Няма намерени файлове.
<?php
}
?>


upload.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Web-Tourist Project [Upload]: Качи файл</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<a href="index.php">Начало</a> | <a href="upload.php">Качи файл</a><br /><br /><br />
<form enctype="multipart/form-data" method="POST" accept-charset="utf-8">
Фаил: <input name="file" type="file"><br />
Описание:<br /><textarea rows="10" cols="50" name="opisanie"></textarea><br />
<input type="submit" name="submit" value="Качи">
</form>
<?php
if (isset($_POST['submit']))
{
$file = basename($_FILES['file']['name']);
$opisanie = htmlspecialchars($_POST['opisanie']);
if (!empty($file) and !empty($opisanie))
{
$format = end(explode(".",$file));
if ($format == "png" or $format == "jpg" or $format == "jpeg" or $format == "gif")
{
$newname = "files/".substr(md5($file.time().date("d.m.Y")), 0, 10).".".$format;
move_uploaded_file($_FILES['file']['tmp_name'], $newname);
$access = "true";
include_once "config.php";
mysql_query("INSERT INTO `files` (`file`,`opisanie`) VALUES ('$newname','$opisanie')") or die(mysql_error());
?>
Файлът е качен успешно.<br />
<a href="<?php echo $newname; ?>" target="_blank"><img src="<?php echo $newname; ?>" width="120" height="96" alt="<?php echo $opisanie; ?>" border="0" /></a><br />
<?php
}
else
{
?>
Грешка: файлът е непозволен формат.<br />
Позволени формати: <b>png</b>, <b>jpg</b>, <b>jpeg</b>, <b>gif</b>.
<?php
}
}
else
{
?>
Грешка: не сте избрали файл или не сте въвели описание.
<?php
}
}
?>

Създай папка с права 777 на име files и на файловете(config.php,index.php,upload.php) им задай оформление "Промени кодировката на UTF-8 (без BOM)" за да нямаш проблем с енкодинга ;)


Поздрави.
 
proba каза:
Драснах ти нещо подобно току що ;)



Създай папка с права 777 на име files и на файловете(config.php,index.php,upload.php) им задай оформление "Промени кодировката на UTF-8 (без BOM)" за да нямаш проблем с енкодинга ;)


Поздрави.

С промяна на форматите примерно rar zip и т.н. могат ли да се качват и други файлове и визоализират ли се накъде?
 
Мерси много колега, на мен ми трябваше само едно малко примерче, от което да видя как трябва да стане.
+1 за помоща и труда :)
GOTI - Да ще могат :)
Лек и успешен ден на всички. ;)
 
Супер и на мен ми трябваше нещо такова и много ми хареса!
Имам само 1 питане - как става когато се изтрие от БД, да се трие и от папката файла ? : ))
 
PHP:
if(isSet($_GET['ID'])) {
$gID = (int)$_GET['ID'];
} else {
$gID = "";
}
$query = mysql_query("SELECT * FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if((mysql_num_rows($query)) > 0 && ($gID != NULL)) {
$row = mysql_fetch_object($query);
mysql_query("DELETE FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if(file_exists("files/{$row->file}")) {
unlink("files/{$row->file}");
}
echo 'файла е изтрит.';
} else {
echo 'файла не съществува.';
}

Пробвайте така.
 
Ticketa каза:
PHP:
if(isSet($_GET['ID'])) {
$gID = (int)$_GET['ID'];
} else {
$gID = "";
}
$query = mysql_query("SELECT * FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if((mysql_num_rows($query)) > 0 && ($gID != NULL)) {
$row = mysql_fetch_object($query);
mysql_query("DELETE FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if(file_exists("files/{$row->file}")) {
unlink("files/{$row->file}");
}
echo 'файла е изтрит.';
} else {
echo 'файла не съществува.';
}

Пробвайте така.
Трие се от базата но не и файла ... но може и при мен да е проблема защото гледам че папката Files е read only обаче дори и като махна отметката и му дам OKey после пак си остава read only ..
 
Я ми покажи к'во щи върне тоя код:

PHP:
<?php
if(isSet($_GET['ID'])) {
$gID = (int)$_GET['ID'];
} else {
$gID = "";
}
$query = mysql_query("SELECT * FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if((mysql_num_rows($query)) > 0 && ($gID != NULL)) {
$row = mysql_fetch_object($query);
mysql_query("DELETE FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if(file_exists("files/{$row->file}")) {
unlink("files/{$row->file}");
}
echo "files/{$row->file}";
//echo 'файла е изтрит.';
} else {
echo 'файла не съществува.';
}
 
Ticketa каза:
Я ми покажи к'во щи върне тоя код:

PHP:
<?php
if(isSet($_GET['ID'])) {
$gID = (int)$_GET['ID'];
} else {
$gID = "";
}
$query = mysql_query("SELECT * FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if((mysql_num_rows($query)) > 0 && ($gID != NULL)) {
$row = mysql_fetch_object($query);
mysql_query("DELETE FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if(file_exists("files/{$row->file}")) {
unlink("files/{$row->file}");
}
echo "files/{$row->file}";
//echo 'файла е изтрит.';
} else {
echo 'файла не съществува.';
}

"файла е изтрит." ама си остава в папката неизтрит само в БД се изтрива
според мен е от правата на папката (нали трябва да е 777) но про мен е смао read only и когато го махна отметката после пак се връща сама
 
Под уиндоус ли ти е сървъра? С админски права ли порменяш правата над папката? Даваш ли правилния път към файла?
 
Точно заради т'ва го накарах да ми каже, к'в резултат ще му изведе - за да видя правилния път:

echo "files/{$row->file}";
.........


Пробвай така, тъй като виждам, че и името на папката се запаметява в ДБ-то.

PHP:
<?php
if(isSet($_GET['ID'])) {
$gID = (int)$_GET['ID'];
} else {
$gID = "";
}
$query = mysql_query("SELECT * FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if((mysql_num_rows($query)) > 0 && ($gID != NULL)) {
$row = mysql_fetch_object($query);
mysql_query("DELETE FROM `files` WHERE `id`='{$gID}';") or die(mysql_error());
if(file_exists("{$row->file}")) {
unlink("{$row->file}");
}
echo 'файла е изтрит.';
} else {
echo 'файла не съществува.';
}
 
Мерси много !!! Така работи вече :P :P
До сега не бях работил с файлове и нямах никаква идея кое как и защо, но вече ми е по-ясно :P
 

Back
Горе