Avatar billede gizmo1234 Nybegynder
15. marts 2004 - 19:15 Der er 5 kommentarer og
2 løsninger

upload billeder + data

Hej.
Jeg har hentet et uploade system, mener det er noget sukos har lavet men er ikke sikker, og det virker også fint, men den skal kunne mere synes jeg :)

Lige nu er der flere bokse så man kan uploade flere billeder på 1 gang, men jeg vil også gerne have det sådan at man først kan vælge de billeder man vil uploade, og nedeunder det skal man så kunne skrive lidt data, som så skal blive smidt ind i en database når man trykker submit. Jeg ved at det kan lade sig gøre, for har fået det til at virke, men det var kun med mulighed for at uploade 1 billede af gangen. Det jeg mangler er hvor jeg skal skrive det med INSERT INTO tabel osv.

Her er uploade koden:

<?php


$stop = "</td>\n</tr></table>\n</center></body></html>";

$dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/";


if(isset($_FILES["singlefile"])) {


$str1 = $_FILES["singlefile"]["name"];
$str2 = $_FILES["singlefile"]["size"];
$str3 = $_FILES["singlefile"]["type"];



$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "image/x-png");

    if ($_FILES["singlefile"]["name"] == "") {
echo"Ingen fil blev valgt <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }

    if (!in_array($_FILES["singlefile"]["type"], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>". $str3 ."</b> er ikke tilladt for upload! <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }

   
        if(is_uploaded_file($_FILES["singlefile"]["tmp_name"])) {

    move_uploaded_file($_FILES["singlefile"]["tmp_name"], $dist . $_FILES["singlefile"]["name"]);



    echo"<font face=verdana size=1 color=333333>Filen blev uploadet<p>\n</font>";
    echo "<font face=verdana size=1 color=333333><b>Navn:</b> ". $str1 ."<br>\n</font>";
    echo"<font face=verdana size=1 color=333333><b>St&oslash;rrelse:</b> ". $str2 ." bytes<br>\n</font>";
    echo"<font face=verdana size=1 color=333333><b>Filtype:</b> ". $str3 ."<br>\n\n\n</font>";
    echo"<font face=verdana size=1 color=333333><a href='show.php'>Vis reklame siden</a>";

        }else{
        echo"Failed!";
    }

        }
     


?>
Avatar billede dennismp Nybegynder
15. marts 2004 - 23:59 #1
Jeg ville skrive det hvis move_uploaded_file() returnerer ok. i stil med

if( move_uploaded_file($_FILES...) ) {
  mysql_query("INSERT INTO tabel..");
}
Avatar billede sukos Juniormester
16. marts 2004 - 07:46 #2
I din form, laver du et tekstfelt til hvert billede:

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input">

Og som dennismp skriver:

if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) {

mysql_query("INSERT INTO `tabel` (`tekst`, `billede`) VALUES ('". $_POST["tekst"][$i] ."', '". $_FILES["upfile"]["name"][$i] ."')") or die (mysql_error());
    //til brug for info om filtyper
    $str1 = $_FILES["upfile"]["name"][$i];
    $str2 = $_FILES["upfile"]["size"][$i];
    $str3 = $_FILES["upfile"]["type"][$i];

    echo "<b>Navn:</b> ". $str1 .", <b> st&oslash;rrelse:</b> ". $str2 ." bytes, <b>filtype:</b> ". $str3 ."<br>\n";
        echo"Med teksten, ". $_POST["tekst"][$i] ."<br>\n";
    }
Avatar billede gizmo1234 Nybegynder
16. marts 2004 - 12:47 #3
Det virker ikke...

Her er upload.php:


<?
$con = mysql_connect("localhost", "*****", "*****");
mysql_select_db("*****");

mysql_close;
?>



<?php


$stop = "</td>\n</tr></table>\n</center></body></html>";

$dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/";


if(isset($_FILES["singlefile"])) {


$str1 = $_FILES["singlefile"]["name"];
$str2 = $_FILES["singlefile"]["size"];
$str3 = $_FILES["singlefile"]["type"];



$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "image/x-png");

    if ($_FILES["singlefile"]["name"] == "") {
echo"Ingen fil blev valgt <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }

    if (!in_array($_FILES["singlefile"]["type"], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>". $str3 ."</b> er ikke tilladt for upload! <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }


if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) {

mysql_query("INSERT INTO `upload` (`tekst`, `billede`) VALUES ('". $_POST["tekst"][$i] ."', '". $_FILES["upfile"]["name"][$i] ."')") or die (mysql_error());
    //til brug for info om filtyper
    $str1 = $_FILES["upfile"]["name"][$i];
    $str2 = $_FILES["upfile"]["size"][$i];
    $str3 = $_FILES["upfile"]["type"][$i];

    echo "<b>Navn:</b> ". $str1 .", <b> st&oslash;rrelse:</b> ". $str2 ." bytes, <b>filtype:</b> ". $str3 ."<br>\n";
        echo"Med teksten, ". $_POST["tekst"][$i] ."<br>\n";
    }

        }
     


?>

Og her er uploadform.php (der hvor man skal skrive data og uploade billederne:

<html><head><title>Upload af en eller flere filer</title>
<link rel="stylesheet" type="text/css" href="upload.css">
</head>
<body>
<center>
<?php
if(ini_get("file_uploads") == 1) { //Tak til detox for at lære mi glidt om ini_get(), http://www.eksperten.dk/spm/392653
?>
<tr><td><hr><b>Flere filer p&aring; samme tid:</b></td>

</tr><tr>

    <td><form enctype="multipart/form-data" action="upload.php" method="post">
V&aelig;lg en eller flere filer til upload:<br>
<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input"><br>

<input name="upfile[]" type="file" size="48" class="input"><br>
<input type="text" name="tekst[]" size="48" class="input">
<center><input type="submit" value="Upload" class="submit"></center><p>
Alle filtyper accepteres ved "multi-upload".</td>

</tr></table>

</form><?php
}else{
echo"Tilsyneladende er filupload ikke tilladt på denne server?<br>\n";
echo"Pr&oslash;v evt. at fjerne den f&oslash;rste if-s&aelig;tning i denne fil.";
}
?>
</center>

</body></html>

Hvad kan der være galt?

Når man trykker upload kommer man bare hen til en hvid side, og der bliver hverken overført data, eller billede
Avatar billede sukos Juniormester
16. marts 2004 - 17:37 #4
Du blander lidt de to form's som der var oprindeligt.

Prøv at erstatte alle "singlefile" i scriptet med "upfile"
Avatar billede gizmo1234 Nybegynder
16. marts 2004 - 17:50 #5
Det hjalp lidt på det, men den fejler stadig.

Upload.php:
<?
$con = mysql_connect("localhost", "*****", "*****");
mysql_select_db("*****");

mysql_close;
?>



<?php


$stop = "</td>\n</tr></table>\n</center></body></html>";

$dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/";


if(isset($_FILES["upfile"])) {


$str1 = $_FILES["upfile"]["name"];
$str2 = $_FILES["upfile"]["size"];
$str3 = $_FILES["upfile"]["type"];



$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "image/x-png");

    if ($_FILES["upfile"]["name"] == "") {
echo"Ingen fil blev valgt <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }

    if (!in_array($_FILES["upfile"]["type"], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>". $str3 ."</b> er ikke tilladt for upload! <a href=\"opret.php\">tilbage</a>";
echo $stop;
exit;
    }


if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) {

mysql_query("INSERT INTO `upload` (`tekst`, `billede`) VALUES ('". $_POST["tekst"][$i] ."', '". $_FILES["upfile"]["name"][$i] ."')") or die (mysql_error());
    //til brug for info om filtyper
    $str1 = $_FILES["upfile"]["name"][$i];
    $str2 = $_FILES["upfile"]["size"][$i];
    $str3 = $_FILES["upfile"]["type"][$i];

    echo "<b>Navn:</b> ". $str1 .", <b> st&oslash;rrelse:</b> ". $str2 ." bytes, <b>filtype:</b> ". $str3 ."<br>\n";
        echo"Med teksten, ". $_POST["tekst"][$i] ."<br>\n";
    }

        }
     


?>


Den skriver følgende:

Filen kan ikke uploades.
Array er ikke tilladt for upload! tilbage


Og den hverken overfører billedet eller data'en.
Avatar billede gizmo1234 Nybegynder
16. marts 2004 - 18:10 #6
Jeg fatter det ikke helt... Der står i koden at jpg og gif filer er tilladte, men det er jo faktisk det den skriver at de ikke er... Hvor ligger fejlen ?
Avatar billede gizmo1234 Nybegynder
17. marts 2004 - 23:07 #7
Jeg har valgt at lukke her, og spørge om det nye spørgsmål...
Jeg har delt points ud imellem jer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester