Avatar billede asgrone Nybegynder
23. januar 2004 - 17:20 Der er 15 kommentarer og
1 løsning

upload af flere filer på en gang, koden driller

jeg kan altså virkelig ikke begribe hvad der er galt!, det er et script til at uploade flere billeder på en gang...
I får lige hele koden:
<?
//uploader
$i = 1;       
for ( $i=1;$i<16;)
{

if ($overskrift) {

$max_size = 500000;
$cert1 = "image/pjpeg"; //jpg
$cert2 = "image/jpeg"; //jpg (for MAC)


$filnummer="file".$i;

if ($HTTP_POST_FILES[$filnummer]['size']>$max_size) { echo "The file is too big<br>\n"; exit; }
$xtype =$HTTP_POST_FILES[$filnummer]['type'];
if ($xtype==$cert1) {

        $filnavn = time();
        $filnavn = "$filnavn".$i;
        @copy("$filnummer" , "../upload/billede_stor/$filnavn.jpg");
        }
       
elseif  ($xtype==$cert2) {

        $filnavn = time();
        $filnavn = "$filnavn".$i;
        @copy("$filnummer" , "../upload/billede_stor/$filnavn.jpg");
        } else {
        die("<br>forkert fil Jens!"); }
       
        }
 
       
//gennererer forside thumbs

           
$pic1 = new Image;                                                      // create a new instance of the Image class
$pic1->loadImage("../upload/billede_stor/$filnavn.jpg");              // load a image
$pic1->resizeCropped(56, 56);                                          // resize
$pic1->saveImage("../upload/billede_lil/$filnavn+.lil.jpg", 75);    // save image


//skriver til databasen

  $insertSQL = "INSERT INTO images ('NULL', $dato, $filnavn, '$overskrift', '$type', $imagepack_id, '$uploader', '$description', '$kategori')";

  mysql_select_db($database_opkobling, $opkobling);
  $Result1 = mysql_query($insertSQL, $opkobling) or die(mysql_error());





if($i==$piccount){ $i = 16; }   

$i++; }

//gå videre
       
  $insertGoTo = "alldone.php";
  if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));

?>
Avatar billede detox Nybegynder
23. januar 2004 - 17:24 #1
$i = 1;     
for ( $i=1;$i<16;)

ser lidt underligt ud, skulle måske være:
     
for ($i=1;$i<16;$i++)
Avatar billede detox Nybegynder
23. januar 2004 - 17:27 #2
Næ, det burde jo virke, når du har:

if($i==$piccount){ $i = 16; }
$i++; }
Avatar billede schaefner Juniormester
23. januar 2004 - 17:44 #3
Prøv lige dette, ganske vidst uploader den kun, men bare lige for at se om den del virker:

<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="send" value="1">
<input type="file" name="file1"> <input type="file" name="file2"><br>
<input type="file" name="file3"> <input type="file" name="file5"><br>
<input type="file" name="file5"> <input type="file" name="file6"><br><br>

<input type="submit" value="Upload">
</form>

<?php
if (isset($_POST['send'])) {
    $max_size = 500000;
    $allowed_filetypes = array('image/pjpeg','image/jpeg');

    for ($i=1;$i<=6;$i++) {
        $file = 'file'.$i;
        if ($_FILES[$file]['name'] != '') {
            if ($_FILES[$file]['size'] > $max_size) {
                echo 'The file is too big<br>';
                exit;
            }
            if (in_array($_FILES[$file]['type'],$allowed_filetypes) {
                $filename = time().$i.'.jpg';
                move_uploaded_file($_FILES[$file]['tmp_name'],'../upload/billede_stor/'.$filename);
            }
        }
    }
}
?>
Avatar billede schaefner Juniormester
23. januar 2004 - 17:47 #4
Der er også noget af din kode jeg ikke helt forstår. F.eks. så indsætter du noget i din database, men det eneste der ændrer sig er filnavnet, så du indsætter f.eks. den samme overskrift 16 gange. Det er nemmere at tilføje resten hvis jeg kender sammenhængen og resten af din form.
Avatar billede schaefner Juniormester
23. januar 2004 - 17:55 #5
jeg lavede også lidt fejl his og her. Prøv denne:

<?php
if (isset($_POST['send'])) {
    $max_size = 500000;
    $allowed_filetypes = array('image/pjpeg','image/jpeg');

    for ($i=1;$i<=6;$i++) {
        $file = 'file'.$i;
        if ($_FILES[$file]['name'] != '') {
            if ($_FILES[$file]['size'] < $max_size && in_array($_FILES[$file]['type'],$allowed_filetypes)) {
                $filename = time().$i.'.jpg';
                move_uploaded_file($_FILES[$file]['tmp_name'],'../upload/billede_stor/'.$filename);
                echo $file.' was uploaded!<br>';
            } else {
                echo $file.' is too big og wrong filetype!<br>';
                break;
            }
        }
    }
}
?>
Avatar billede asgrone Nybegynder
23. januar 2004 - 19:34 #6
det er en funktion til at uploade til at uploade flere billeder ad gangen. Alle billederne skal have den samme titel, den samme beskrivelse og være i samme kategori. $piccount variablen indeholder antallet af billeder der skal uploades, og resten af variablen kommer fra form's fra de tidligere sider.
Avatar billede schaefner Juniormester
23. januar 2004 - 20:54 #7
ok, men virker det jeg har postet?
Avatar billede asgrone Nybegynder
24. januar 2004 - 01:00 #8
nej den virker ikke der er parse error allerede i første linie.. det er egentlig også mere der hvor det skal sættes ind i databasen det driller, den siger sådan her:

Warning: imagecreatefromjpeg: Unable to open '../upload/billede_stor/10749023271.jpg' for reading in /home/.sites/33/site22/web/images/imagescale.php on line 16
You have an error in your SQL syntax near ''NULL', 1074901180 , 10749023271, 'image names', 'imagepack', 2, 'asger', 'image' at line 1
Avatar billede schaefner Juniormester
24. januar 2004 - 09:07 #9
Prøv:

<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="send" value="1">
<input type="file" name="file1"> <input type="file" name="file2"><br>
<input type="file" name="file3"> <input type="file" name="file5"><br>
<input type="file" name="file5"> <input type="file" name="file6"><br><br>

<input type="submit" value="Upload">
</form>

<?php
if (isset($_POST['send'])) {
    $max_size = 500000;
    $allowed_filetypes = array('image/pjpeg."','image/jpeg');

    for ($i=1;$i<=6;$i++) {
        $file = 'file'.$i;
        if ($_FILES[$file]['name'] != '') {
            if ($_FILES[$file]['size'] < $max_size && in_array($_FILES[$file]['type'],$allowed_filetypes)) {
                $filename = time().$i.'.jpg';
                move_uploaded_file($_FILES[$file]['tmp_name'],'../upload/billede_stor/'.$filename);
                echo $file.' was uploaded!<br>';
            } else {
                echo $file.' is too big og wrong filetype!<br>';
                break;
            }

            $pic = new Image;
            $pic->loadImage('../upload/billede_stor/'.$filename);
            $pic->resizeCropped(56, 56);
            $pic->saveImage('../upload/billede_lil/'.$filename, 75);

            $insertSQL = "INSERT INTO images (NULL,'".$_POST['dato']."', '".$filename."', '".$_POST['overskrift']."', '".$_POST['type']."', '".$_POST['imagepack_id']."', '".$_POST['uploader']."', '".$_POST['description']."', '".$_POST['kategori']."')";

            mysql_select_db($database_opkobling, $opkobling);
            mysql_query($insertSQL, $opkobling) or die(mysql_error());
        }
    }
}
?>
Avatar billede asgrone Nybegynder
24. januar 2004 - 19:14 #10
Jeg kan ikke få det til at virke, den siger der er parse error i den første linie, altså den hvor den definerer $max_size. Jeg kan slet ikke forstå det..
Avatar billede schaefner Juniormester
24. januar 2004 - 20:09 #11
den melder ingen fejl hos mig.
Avatar billede schaefner Juniormester
24. januar 2004 - 20:13 #12
Prøv lige at poste den kode du har forsøgt med
Avatar billede asgrone Nybegynder
25. januar 2004 - 23:05 #13
nu fik jeg din kode til at virke... det viste sig at jeg skulle slette alle mellemrum hend til starten af en linie, meget mærkeligt!. Den siger dog stadig "You have an error in your SQL syntax near 'NULL,'1075056698 ', '10750681451.jpg', 'image names', 'imagepack', '2', 'asger',' at line 1" kan det have noget at gøre med jeg har sat tabellen forkert op?
Avatar billede schaefner Juniormester
26. januar 2004 - 21:10 #14
Prøv:

$insertSQL = "INSERT INTO images ('NULL','".$_POST['dato']."', '".$filename."', '".$_POST['overskrift']."', '".$_POST['type']."', '".$_POST['imagepack_id']."', '".$_POST['uploader']."', '".$_POST['description']."', '".$_POST['kategori']."')";
Avatar billede asgrone Nybegynder
10. februar 2004 - 15:10 #15
så fik jeg det til at virke... tak for hjælpen, jeg synes du skal have pointene, men du mangler at svare
Koden kom til at se således ud:

      <?
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}


if (isset($_POST['dato'])) {
$max_size = 500000;
$allowed_filetypes = array('image/pjpeg."','image/jpeg');

//uploader
$i = 0;       
for ( $i=1;$i<16;)
{
$file = 'file'.$i;
if ($_FILES[$file]['name'] != '') {
if ($_FILES[$file]['size'] < $max_size && in_array($_FILES[$file]['type'],$allowed_filetypes)) {
$filename = time().$i.'.jpg';
move_uploaded_file($_FILES[$file]['tmp_name'],'../upload/billede_stor/'.$filename);
echo $file.'was uploaded!<br>';
} else {
echo $file.'forkert fil Jens!<br>';
break;
}}

//laver forside thumbnails
$pic = new Image;
$pic->loadImage('../upload/billede_stor/'.$filename);
$pic->resizeCropped(56, 56);
$pic->saveImage('../upload/billede_lil/'.$filename, 75);

//gennererer thumbs
           
$pic = new Image;
$pic->loadImage('../upload/billede_stor/'.$filename);
$pic->resizeCropped(60, 120);
$pic->saveImage('../upload/billede_thumbs/'.$filename, 75);

//skriver til databasen
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO images (dato, url, overskrift, type, imagepack_id, uploader, beskrivelse, kategori) VALUES (%s, '$filename', %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($HTTP_POST_VARS['dato'], "int"),

                      GetSQLValueString($HTTP_POST_VARS['overskrift'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['type'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['imagepack_id'], "int"),
                      GetSQLValueString($HTTP_POST_VARS['uploader'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['beskrivelse'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['kategori'], "text"));
mysql_select_db($database_opkobling, $opkobling);
$Result1 = mysql_query($insertSQL, $opkobling) or die(mysql_error());
}

if($i==$piccount){ $i = 16; }   

$i++; }}

?>
Avatar billede schaefner Juniormester
19. november 2004 - 08:44 #16
Så må jeg hellere få lagt et svar :)
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

IT-JOB