webForumDet fria alternativet

Uppladdning! USCH!

22 svar · 854 visningar · startad av crisse6

crisse6Medlem sedan dec. 20002 526 inlägg
#1

Hej!

Försöker få ihop mitt uppladdningsskript här. Den klagar inte på något. Funkar heller inte online (inte heller där får man felmess). Så misstänker ju starkt att det är något med koden!
Vore skitnice om någon skulle kunna ta en titt här...

<?
if (isset($_FILES['fildata'])) {
	if (is_uploaded_file($_FILES['fildata']['tmp_name'])) {
		if (empty($_POST['besk']))
			$besk = "Ingen beskrivning!";
		else
			$besk = $_POST['besk'];
		$dbh = @mysql_connect("localhost", "root", "")
			or die("Ingen koppling där du!");
		mysql_select_db("gallery");
		$filnamn = $_FILES['fildata']['name'];
		$filtyp = $_FILES['fildata']['type'];
		$filstorlek = $_FILES['fildata']['size'];
		
		$sql = "Insert into upload (filnamn, filtyp, filstorlek, fildata, besk)";
			$sql .= " Values ('$filnamn', '$filtyp', '$filstorlek', '$fildata', '$besk')";
				mysql_query($sql);
				
				$fil_id = mysql_insert_id();
//Här börjar skalning

	$mapp = "pics/";
	$mapp2 = "pics/thumbs/";
				$storlek = getimagesize($_FILES['fildata']['tmp_name']);
				$nybredd = 90;
				$nyhojd = 90;
				$nybredd2 = 600;
				$nyhojd2 = 600;
				
				if (($storlek[0] - $nybredd) >= ($storlek[1] - $nyhojd)) {
        $bildbredd = $nyhojd;
        $bildhojd = ($nybredd/$storlek[0])*$storlek[1];

    } else {

        $bildhojd = $nyhojd;
        $bildbredd = ($bildhojd/$storlek[1])*$storlek[0]; 
    }

    $bild_kalla = imagecreatefromjpeg($_FILES['fildata']['tmp_name']);
	
    // GD2
    $bild_skapa = imagecreatetruecolor($bildbredd, $bildhojd);
    imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	imagejpeg ($bild_skapa, $mapp.$_FILES['fildata']['name'], 100);

    imagedestroy ($bild_skapa);

    // skapa stor bild

    if (($storlek[0] - $nybredd2) >= ($storlek[1] - $nyhojd2)) {
        $bildbredd = $nyhojd2;
        $bildhojd = ($nybredd2/$storlek[0])*$storlek[1];

    } else {

        $bildhojd = $nyhojd2;
        $bildbredd = ($bildhojd/$storlek[1])*$storlek[0]; 
    }

    $bild_kalla = imagecreatefromjpeg($_FILES['fildata']['tmp_name']);

    // GD2
    $bild_skapa = imagecreatetruecolor($bildbredd, $bildhojd);
    imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	imagejpeg ($bild_skapa, $mapp2.$_FILES['fildata']['name'], 100);
    imagedestroy ($bild_skapa);
    
	
//Slut på skalning
				
				move_uploaded_file($_FILES['fildata']['tmp_name'],"pics/".$_FILES['fildata']['name']);
				
				echo "<b>Uppladdning och skalning klart!</b><br>";
				echo mysql_error();
				mysql_close();
			}
		}
?>
<form action="index.php" method="post" enctype="multipart/form-data">
Välj bild att ladda upp:<br>
<input type="file" name="fildata"><br>
Beskrivning av bilden:<br>
<input type="text" name="besk"><br>
<input type="submit" value="Ladda upp!">
</form>

HEij HEij :bire

filipbhMedlem sedan juli 2002405 inlägg
#2

Testa att byta ut

<input type="file" name="fildata"><br>

mot

<input type="file" name="fildata[]"><br>
crisse6Medlem sedan dec. 20002 526 inlägg
#3

gör ingen skillnad

MatteMedlem sedan aug. 20002 975 inlägg
#4

Det filiph skrev skulle möjligvis haft någon betydelse om du tänkt dig att lägga upp flera filer samtidigt.
Om du inte har gjort det, ställ tillbaka.

För att försöka skaffa oss lite information om vad som händer, gör följande.

1. Lägg följande överst på sidan:

<?php

error_reporting(E_ALL);
ini_set("display_errors", "1");

2. Lägg följande precis efter if (isset($_FILES['fildata'])) {:

echo "<pre>";
print_r($_FILES);
echo "</pre>";

Vad skrivs nu ut på skärmen om du försöker ladda upp en fil ?

crisse6Medlem sedan dec. 20002 526 inlägg
#5

Okej okej!

Nu har jag dock gjort en ominstallation av mitt Win XP igår. Men har allt installerat. Men nu har jag inte fått den å upprätta en koppling till MySQL... weird! Ska kolla på det, men hur som helst när jag kör din kodsnutt så får jag ut:

Array
(
    [fildata] => Array
        (
            [name] => Solnedgång.jpg
            [type] => image/jpeg
            [tmp_name] => C:\WINDOWS\TEMP\php32.tmp
            [error] => 0
            [size] => 71189
        )

)

Ingen koppling där du!
MatteMedlem sedan aug. 20002 975 inlägg
#6

Det har inget med kopplingen till MySQL att göra det minsta, men det visar åtminstone att din filuppladdning har lyckats.

crisse6Medlem sedan dec. 20002 526 inlägg
#7

Inte om du kollar i mapparna den ska skriva till! Dom e tomma!

MatteMedlem sedan aug. 20002 975 inlägg
#8

Har du lagt följande överst i skriptet ?

<?php 

error_reporting(E_ALL); 
ini_set("display_errors", "1");

Då ska du antingen få felmeddelande, eller så ska det fungera.

Skrivs överhuvudtaget "Uppladdning och skalning klart!" ut ?

Kör du detta skript i index.php ?

crisse6Medlem sedan dec. 20002 526 inlägg
#9

Får inga felmess. Och nej, det skrivs inte ut!

crisse6Medlem sedan dec. 20002 526 inlägg
#10

Har upptäckt att den stannar typ mitt i databasinskrivningen! Testade runt med echo!

crisse6Medlem sedan dec. 20002 526 inlägg
#11

Där innan databaskopplingen är brytpunkten! Där slutar den alltså att köra vidare...

MatteMedlem sedan aug. 20002 975 inlägg
#12

I och med att du har en die() på din mysql_connect() så fastnar den där, när det är något fel med mysql-anslutningen.

Antingen är inte MySQL igång, eller så försöker du logga in med felaktiga uppgifter.
Ändra till:

$dbh = @mysql_connect("localhost", "root", "") 
            or die("Ingen koppling där du!<br>".mysql_error());

Kanske då kan få ett meddelande som någon kan tyda till vad som är fel.

crisse6Medlem sedan dec. 20002 526 inlägg
#13

Då fick man det underbara meddelandet:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Försöka återställa password eller?

@ndersMedlem sedan juni 200032 969 inlägg
crisse6Medlem sedan dec. 20002 526 inlägg
#15

Så, nu e MYSQL igång...
får felmess:

Notice: Undefined variable: fildata in c:\inetpub\wwwroot\upload\index.php on line 33

Fatal error: Call to undefined function: imagecreatefromjpeg() in c:\inetpub\wwwroot\upload\index.php on line 58
crisse6Medlem sedan dec. 20002 526 inlägg
#16

Okej. Notisen fixade jag ju... den va misstag.
Men det andra känns som att GD inte är som det ska!!!

crisse6Medlem sedan dec. 20002 526 inlägg
#17

Okej. Kör den nu på b-one. Asså det är ju något med att jag inte får in GD på min verkar det som!!! Det ingår tydligen inte i de nya php... läste jag?

Iaf. Den laddar upp bilden, den stora, men skapar ingen liten! Why?

MatteMedlem sedan aug. 20002 975 inlägg
#18

Därför att du inte har GD-stöd, eller endast mycket begränsat GD-stöd, därav ditt felmeddelande om "undefined function".

crisse6Medlem sedan dec. 20002 526 inlägg
#19

hur ställer jag in det?

MatteMedlem sedan aug. 20002 975 inlägg
#20

På b-one kan du inte göra något åt det, har de inte GD-stöd får du leva med det.
Kör du Windows på din testserver, ta en titt här: http://www.phpportalen.net/viewtopic.php?p=248451#248451

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)