/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
HJÆLP! upload script - DB driller!
Fra : Ralle


Dato : 31-08-06 20:38

hejsa...

jeg har lavet en kode, hvor når man uploader noget, sender den
informationer til mysql DB'en, og den ligger filen ind i mappen
files

upload.php (virker fint!):

<html>
<head>
<title>Upload File To MySQL Database</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<style type="text/css">
<!--
..box {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
border: 1px solid #000000;
}
-->
</style>
</head>

<body>
<?
if(isset($_POST['upload']))
{
   
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];


$fp = fopen($tmpName, 'r');
$content = fread($fp, $fileSize);
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}


include 'config.php';
include 'opendb.php';

   $query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType',
'$content')";


   mysql_query($query) or die('Error, query failed');
include 'closedb.php';
echo "<br>File $fileName uploaded<br>";
}

// dette er lavet itilfelde af at dit webhotel ikke tilbyder at
//du uploader filer bare via et script.

$destination =
"ftp://brugernavn:password@enzolim.dk/video.enzolim.dk/files/" .
$_FILES['userfile']['name'];

   //Forsøg at flyttede den uploadede fil har dens midlertidige
destination til den nye
   if (move_uploaded_file($_FILES['userfile']['tmp_name'],
   $destination))
?>
<form action="" method="post" enctype="multipart/form-data"
name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1"
class="box">
<tr>
<td width="246"><input type="hidden" name="MAX_FILE_SIZE"
value="2000000"><input name="userfile" type="file" class="box"
id="userfile">

</td>
<td width="80"><input name="upload" type="submit"
class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
</body>
</html>

så er der den fil som driller:

download.php:

<?
if(isset($_GET['id']))
{
include 'config.php';
include 'opendb.php';

$id = $_GET['id'];
$query = "SELECT name, type, size FROM upload WHERE id =
'$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size) = mysql_fetch_array($result);

if(isset($type['JPG, GIF, BMP, jpg, gif, bmp']))

$content2 = fopen($name, 'r');
$content3 = fread($content2, $fileSize);
$content3 = addslashes($content3);
fclose($content2);


header("Content-Disposition: attachment; filename=$name");
header("Content-length: $size");
header("Content-type: $type");
echo $content2;

include 'closedb.php';
exit;
}

else
{

include 'config.php';
include 'opendb.php';

$id = $_GET['id'];
$query = "SELECT name, type, size, content FROM upload
WHERE id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) =
mysql_fetch_array($result);

header("Content-Disposition: attachment; filename=$name");
header("Content-length: $size");
header("Content-type: $type");
echo $content;

include 'closedb.php';
exit;
}


?>
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>

<body>
<?
include 'config.php';
include 'opendb.php';

$query = "SELECT id, name FROM upload";
$result = mysql_query($query) or die('Error, query failed');
if(mysql_num_rows($result) == 0)
{
echo "Database is empty <br>";
}
else
{
while(list($id, $name) = mysql_fetch_array($result))
{
?>
<a href="download.php?id=<?=$id;?>"><?=$name;?></a> <br>
<?
}
}
include 'closedb.php';
?>
</body>
</html>

jeg har ændret ret meget i denne kode! og jeg får ingen fejl, men
siden er blank når man loader den! og ja jeg er 100 % sikker på
at der noget i DB'en.

nogle som kan hjælpe mig, det det skal bruges til er:

den skriver filerne som er i DB'en som links på download.php så
når man trykker på en af tingene, så loader den informationerne,
og hvis det er et billed åbner den billedet, fra mappen /files/
og hvis det bare er et text dokument så loader den text'en fra
DB'en.

Ralle

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Mads (25-11-2006)
Kommentar
Fra : Mads


Dato : 25-11-06 17:50

Heej Ralle ..

Kan ikk rigtig finde rundt i din kode, men hvad jeg kan forstå vil du ha et
upload script hvor den gemmer oplysninger i DataBasen, jeg bruger selv dette
script:

<?php
function upload_form() {
?>
<html>
<head><title>File upload</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?=
$_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="action" value="upload">
Velkommen til Mads' Upload system :)<br><br>Vælg din fil og tryk Upload
:)<br>
<input type="file" name="file">
<br><input type="submit" name="submit" value="Upload">
</form>
<?php
}

function upload_file() {

if (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] ==
"image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png")){
if($_FILES["file"]["size"] < 150000){
$sti = "./uploadsys";
$fra = $_FILES['file']['tmp_name'];
$fra2 = $_FILES['file']['name'];
$imgtype = $_FILES['file']['type'];
$til = "$sti/".$fra2;
copy($fra, $til)or die("<br><font face='tahoma' color='red' size='2'>Der
opstod en fejl under upload - Prøv igen</font>");
echo "<h2>Succes</h2><img width='300' src='uploadsys/$fra2'><br>Billedet er
blevet uploadet korrekt.<br>Link til billedet:<br><a
href='http://www.2cool4you.dk/uploadsys/$fra2";'>http://www.2cool4you.dk/uploadsys/$fra2'>http://www.2cool4you.dk/uploadsys/$fra2";
}elseif($_FILES["file"]["size"] > 500000) { $size =
round($_FILES['file']['size']/1000);
echo "<br><font face='tahoma' color='red' size='2'>Billedet er større end
de tilladte 150 KB<br>Dit fylder: $size KB.</font>"; }

}else { $imgtype = $_FILES['file']['type'];
echo "<br><font face='tahoma' color='red' size='2'>Billedets format er ikke
understøttet<br>Type: $imgtype</font>"; }
}

?>
<?php
if($_POST['action'] == 'upload') {
upload_file();
} else {
upload_form();
}
?>

Hvilken er meget nem at rette i, der er begrænsninger på hvor stor filen må
være, og hvilken type filen er ..
Noget der kan bruges ?

Vh. Mads ..



Dennis Munding (18-12-2006)
Kommentar
Fra : Dennis Munding


Dato : 18-12-06 22:45

Hej Mads!
"Mads" <mads@4701.dk> skrev i en meddelelse
news:45687c4d$0$20271$edfadb0f@dread16.news.tele.dk...
> Kan ikk rigtig finde rundt i din kode, men hvad jeg kan forstå vil du ha
> et upload script hvor den gemmer oplysninger i DataBasen, jeg bruger selv
> dette script:

[SNIP - kode]

> Hvilken er meget nem at rette i, der er begrænsninger på hvor stor filen
> må være, og hvilken type filen er ..
> Noget der kan bruges ?

Jeg ved ikke, hvordan du bærer dig ad, men jeg kan ikke få skidtet til at
virke (manglede selv noget lignende at "lege" med, så jeg tillod mig at
kopiere koden...)??

Skal filen ligge i samme mappe, som der uploades til (uploadsys), eller skal
den ligge udenfor - har prøvet begge dele uden held... :-/

Og nej! Billederne var ikke for store!


Med venlig hilsen
--
Dennis Munding
http://pe-vagtservice.dk/ -Et sikkert valg til at passe på dine værdier!
http://munding-interieur.dk/ -Alt godt til hjemmet - på Frederiksberg!
http://munding-webdesign.dk/ -Vi ses! - ganske enkelt...



Mads (05-01-2007)
Kommentar
Fra : Mads


Dato : 05-01-07 17:56

Heej Dennis ..

Svar fra NyhedsGruppe ..
Jeg kan ikke helt se hvorfor det ikke virker.
Havde glemt at poste noget af koden kan jeg se ..

<?php
function upload_form() {
?>
<html>
<head><title>Billede Upload</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?=
$_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="action" value="upload">
Velkommen til Mads's Upload system :)<br><br>Vælg din fil og tryk Upload
:)<br>
<input type="file" name="file">
<br><input type="submit" name="submit" value="Upload">
</form>
<?php
}

function upload_file() {
if (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] ==
"image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png")){
if($_FILES["file"]["size"] < 150000){
$sti = "./uploadsys";
$fra = $_FILES['file']['tmp_name'];
$fra2 = $_FILES['file']['name'];
$imgtype = $_FILES['file']['type'];
$til = "$sti/".$fra2;
copy($fra, $til)or die("<br><font face='tahoma' color='red' size='2'>Der
opstod en fejl under upload - Prøv igen</font>");
echo "<h2>Succes</h2><img width='300' src='uploadsys/$fra2'><br>Billedet er
blevet uploadet korrekt.<br>Link til billedet:<br><a
href='http://www.2cool4you.dk/uploadsys/$fra2";'>http://www.2cool4you.dk/uploadsys/$fra2'>http://www.2cool4you.dk/uploadsys/$fra2";
}elseif($_FILES["file"]["size"] > 500000) { $size =
round($_FILES['file']['size']/1000);
echo "<br><font face='tahoma' color='red' size='2'>Billedet er større end
de tilladte 150 KB<br>Dit fylder: $size KB.</font>"; }

}else { $imgtype = $_FILES['file']['type'];
echo "<br><font face='tahoma' color='red' size='2'>Billedets format er ikke
understøttet<br>Type: $imgtype</font>"; }
}

?>
<?php
if($_POST['action'] == 'upload') {
upload_file();
} else {
upload_form();
}
?>

Det er den hele, billederne blir uploadet til: /uploadsys/

Kan du selv rette i $sti .
HUsk osse at denne fil her skal have 777 chmod :)

Vh.
Mads.

--------------------------------------------------------------------------------
Jeg beskyttes af den gratis SPAMfighter til privatbrugere.
Den har indtil videre sparet mig for at få 3590 spam-mails
Betalende brugere får ikke denne besked i deres e-mails.
Hent en gratis SPAMfighter her.



Dennis Munding (06-01-2007)
Kommentar
Fra : Dennis Munding


Dato : 06-01-07 08:22

Hej Mads!
"Mads" <mads@4701.dk> skrev i en meddelelse
news:459e8341$0$1336$edfadb0f@dread16.news.tele.dk...
> Heej Dennis ..
>
> Svar fra NyhedsGruppe ..
> Jeg kan ikke helt se hvorfor det ikke virker.
> Havde glemt at poste noget af koden kan jeg se ..

Ja undskyld, men det kan jeg nu ikke se (måske jeg har stirret mig
blind...?).
Jeg har fået den "gamle" version til at virke...

[SNIP - kode]


> Det er den hele, billederne blir uploadet til: /uploadsys/

Ok! Har jeg så fundet ud af nu...

> Kan du selv rette i $sti .

Det var heller ikke problemet...

> HUsk osse at denne fil her skal have 777 chmod :)

Se det var jo en ret essentiel detalje, som (efter jeg havde ændret chmod)
fik hele "skidtet" til at virke!

Mange tak for hjælpen!


Med venlig hilsen
--
Dennis Munding
http://tolkecentret.dk/ - Tolkning, oversættelse, rådgivning og kurser!
http://pe-vagtservice.dk/ -Et sikkert valg til at passe på dine værdier!
http://munding-webdesign.dk/ -Vi ses! - ganske enkelt...



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste