Avatar billede taager-kongen Nybegynder
04. november 2002 - 15:32 Der er 30 kommentarer og
1 løsning

upload + scale

jeg har søgt og søgt håber en kan hjælpe...man upload en fil KUN en af gangen.. hvis filen findes skal den skrive det til brugen.. Hvis der ikke er en fil med uploads filen skal den upload den til billeder\alm

også kommer det svære.. den skal minimere det (ikke skræer i det, men minismere) det til 100 x 100 (skal kunnes ændres) og lægge den fil i billeder\små


kan man det?
Avatar billede eky Nybegynder
04. november 2002 - 15:35 #1
Du ka' sikkert nemt tilrette flg. kode

    $size = getimagesize("$updir/$tst_file_name");
    $x = $size[0];
    $y = $size[1];
    $ny_x = 100;
    $f = $x/$ny_x;
    $ny_y = $y/$f;

    // Lav et billede med breden 100 * forhold
    $dst_img=ImageCreate($ny_x, $ny_y);
    $src_img=ImageCreateFromjpeg("$updir/$file_name");
    ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $ny_x, $ny_y ,ImageSX($src_img),ImageSY($src_img));
    //Split navnet
    $file_name_100x100=$file_name;
    $pieces = explode(".", $file_name_100x100);
    //Tilføj 100x100 til navnet
    $file_name_100x100=join( "_100x100".'.', $pieces);
    //Gem resized billede
    Imagejpeg($dst_img, "$updir/$file_name_100x100");
Avatar billede Slettet bruger
04. november 2002 - 15:37 #2
Jeg har et jeg bruger til at uploade med, men det tjekker ikke for om filen findes. Det kan man dog nemt rette.

Et færdigt script får du ikke, men følgende kan tilpasses dine egne krav:

if($_POST['send'] == "ok") {

$allowedTypes = array("image/jpeg", "image/pjpeg", "image/jpg"); //tilladte filtyper. Tilføj fx. "image/gif"

$maxFileSize = 1030720; //tilladt max-størrelse i bytes

$max_width = 1024; //Ja, tilladte max. højde
$max_height = 768; //Tilladte max. bredde

//*nix-path til originalfilens endelige placering
$path = $_SERVER['DOCUMENT_ROOT'] . "/music-aarhus/billeder/galleri/";

IF($_FILES['img']['size']> 0) {
//hvis brugeren har valgt en fil

//Er fil-typen blandt tilladte?
IF (in_array($_FILES['img']['type'],$allowedTypes)) {

//Er fil-størrelsen under max. tilladte?
IF ($_FILES['img']['size'] <= $maxFileSize) {

//Find billedets størrelse
$size = getimagesize($_FILES['img']['tmp_name']);

//Filen er ikke for bred
if($size[0] < $max_width) {

//Filen er ikke for høj
if($size[1] < $max_height) {

//Læseligt tidsstempel - tilføjes senere filnavn og giver derved et unikt filnavn
$tid = date("His_dmy", time());

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = 100;
$division = $size[0] / 100;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w,$new_h);

$src_img=ImageCreateFromJpeg($_FILES['img']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til thumbfilens endelige placering
$filename2 = "./billeder/galleri/thumbs/" . $img=$tid.$_FILES['img']['name'];

//Udfør det hele
ImageJpeg($dst_img, $filename2);

//Flyt filen fra tmp til endelig placering
move_uploaded_file($_FILES['img']['tmp_name'], $path.$tid.$_FILES['img']['name']) or die("Desværre er der sket en fejl!");

//filnavnet til db'en
$img=$tid.$_FILES['img']['name'];

}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for høj!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for bred!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for stor!";
}
}
ELSE {
//Fejlmedl. hvis fil-format ikke tilladt
$fejl = "Billede ikke sat ind: Forkert fil-format!";
}
}

if(!isset($fejl)) {

$sql = "INSERT INTO music_galleri_billeder (kategori_id, sti) VALUES ('" . $_POST['kategori'] . "', '" . $img . "')";

mysql_query($sql) or die(mysql_error());

$tak = "Billede uploadet i kategorien";
}

}
Avatar billede taager-kongen Nybegynder
04. november 2002 - 15:43 #3
får fejl:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\inetpub\wwwroot\rasmusmadsen\eksperten\scale.php on line 14
vil du se koden?
har bare slettet:
if(!isset($fejl)) {

$sql = "INSERT INTO music_galleri_billeder (kategori_id, sti) VALUES ('" . $_POST['kategori'] . "', '" . $img . "')";

mysql_query($sql) or die(mysql_error());

$tak = "Billede uploadet i kategorien";
}

??
gemmer den det i to filer?
Avatar billede Slettet bruger
04. november 2002 - 15:45 #4
Du har nok slettet mere end det, måske dne sidste }
Avatar billede taager-kongen Nybegynder
04. november 2002 - 15:48 #5
nej kig her:
<?php
if($_POST['send'] == "ok") {

$allowedTypes = array("image/jpeg", "image/pjpeg", "image/jpg"); //tilladte filtyper. Tilføj fx. "image/gif"

$maxFileSize = 1030720; //tilladt max-størrelse i bytes

$max_width = 1024; //Ja, tilladte max. højde
$max_height = 768; //Tilladte max. bredde

//*nix-path til originalfilens endelige placering
$path = $_SERVER['DOCUMENT_ROOT'] . "\filer\";

IF($_FILES['img']['size']> 0) {
//hvis brugeren har valgt en fil

//Er fil-typen blandt tilladte?
IF (in_array($_FILES['img']['type'],$allowedTypes)) {

//Er fil-størrelsen under max. tilladte?
IF ($_FILES['img']['size'] <= $maxFileSize) {

//Find billedets størrelse
$size = getimagesize($_FILES['img']['tmp_name']);

//Filen er ikke for bred
if($size[0] < $max_width) {

//Filen er ikke for høj
if($size[1] < $max_height) {

//Læseligt tidsstempel - tilføjes senere filnavn og giver derved et unikt filnavn
$tid = date("His_dmy", time());

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = 100;
$division = $size[0] / 100;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w,$new_h);

$src_img=ImageCreateFromJpeg($_FILES['img']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til thumbfilens endelige placering
$filename2 = "./billeder/galleri/thumbs/" . $img=$tid.$_FILES['img']['name'];

//Udfør det hele
ImageJpeg($dst_img, $filename2);

//Flyt filen fra tmp til endelig placering
move_uploaded_file($_FILES['img']['tmp_name'], $path.$tid.$_FILES['img']['name']) or die("Desværre er der sket en fejl!");

//filnavnet til db'en
$img=$tid.$_FILES['img']['name'];

}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for høj!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for bred!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for stor!";
}
}
ELSE {
//Fejlmedl. hvis fil-format ikke tilladt
$fejl = "Billede ikke sat ind: Forkert fil-format!";
}
}

}
?>
Avatar billede Slettet bruger
04. november 2002 - 15:50 #6
$path = $_SERVER['DOCUMENT_ROOT'] . "\filer\";

skal være

$path = $_SERVER['DOCUMENT_ROOT'] . "/filer/";


og så fremdeles...
Avatar billede taager-kongen Nybegynder
04. november 2002 - 15:52 #7
el_barto --> kan jeg få formen?
denne her uploader kun en ikk den scale ikke?
Avatar billede taager-kongen Nybegynder
04. november 2002 - 16:00 #8
hallo?
Avatar billede taager-kongen Nybegynder
04. november 2002 - 16:01 #9
hvad med gif?
hvad skal feltet hedde fra det andet dokument?
Avatar billede Slettet bruger
04. november 2002 - 16:14 #10
Du kan ikke scalere gif med dette script, da GDLib ikke længere understøtter det (pga licensproblemer)

Hvis du også vil lege med gif skal du bruge Image Magick http://www.imagemagick.org

Hvis du stadig gerne vil bruge mit script kan du få formen her:

<form name="form" enctype="multipart/form-data" method="post">
<input type="hidden" name="send" value="ok">

<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr>
<td width="200" nowrap align="right"><b>Billede:</b></td><td><input name="img" class="file" type="file" style="width:80%"></td></tr>

<tr><td></td><td><input type="submit" class="knap" style="width:80%" value="Upload billede"></td></tr>
</table>

</form>
Avatar billede taager-kongen Nybegynder
04. november 2002 - 16:46 #11
for denne fejl:
Warning: Unable to create '/filer/alm/165727_041102bund.jpg': No such file or directory in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55

Warning: Unable to move 'C:\WINNT\TEMP\phpB5E.tmp' to '/filer/alm/165727_041102bund.jpg' in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55
Desværre er der sket en fejl!
Avatar billede Slettet bruger
04. november 2002 - 17:07 #12
Har du oprettet mappen /filer/alm ??
Avatar billede taager-kongen Nybegynder
04. november 2002 - 18:17 #13
ja...
Avatar billede taager-kongen Nybegynder
04. november 2002 - 18:24 #14
<?php
if($_POST['send'] == "ok") {

$allowedTypes = array("image/jpeg", "image/pjpeg", "image/jpg"); //tilladte filtyper. Tilføj fx. "image/gif"

$maxFileSize = 1030720; //tilladt max-størrelse i bytes

$max_width = 1024; //Ja, tilladte max. højde
$max_height = 768; //Tilladte max. bredde

//*nix-path til originalfilens endelige placering
$path = $_SERVER['DOCUMENT_ROOT'] . "/filer/alm/";

IF($_FILES['img']['size']> 0) {
//hvis brugeren har valgt en fil

//Er fil-typen blandt tilladte?
IF (in_array($_FILES['img']['type'],$allowedTypes)) {

//Er fil-størrelsen under max. tilladte?
IF ($_FILES['img']['size'] <= $maxFileSize) {

//Find billedets størrelse
$size = getimagesize($_FILES['img']['tmp_name']);

//Filen er ikke for bred
if($size[0] < $max_width) {

//Filen er ikke for høj
if($size[1] < $max_height) {

//Læseligt tidsstempel - tilføjes senere filnavn og giver derved et unikt filnavn
$tid = date("His_dmy", time());

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = 100;
$division = $size[0] / 100;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w,$new_h);

$src_img=ImageCreateFromJpeg($_FILES['img']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til thumbfilens endelige placering
$filename2 = "./filer/small/" . $img=$tid.$_FILES['img']['name'];

//Udfør det hele
ImageJpeg($dst_img, $filename2);

//Flyt filen fra tmp til endelig placering
move_uploaded_file($_FILES['img']['tmp_name'], $path.$tid.$_FILES['img']['name']) or die("Desværre er der sket en fejl!");

}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for høj!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for bred!";
}
}

ELSE {
//Fejlmedl. hvis fil over max. tilladt
$fejl = "Billede ikke sat ind: Filen er for stor!";
}
}
ELSE {
//Fejlmedl. hvis fil-format ikke tilladt
$fejl = "Billede ikke sat ind: Forkert fil-format!";
}
}

}
?>
<form name="form" action="scale.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="send" value="ok">

<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<tr>
<td width="200" nowrap align="right"><b>Billede:</b></td><td><input name="img" class="file" type="file" style="width:80%"></td></tr>

<tr><td></td><td><input type="submit" class="knap" style="width:80%" value="Upload billede"></td></tr>
</table>

</form>


fejl:

Warning: Unable to create '/filer/alm/183438_041102cade.jpg': No such file or directory in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55

Warning: Unable to move 'C:\WINNT\TEMP\phpB78.tmp' to '/filer/alm/183438_041102cade.jpg' in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55
Desværre er der sket en fejl!
Avatar billede taager-kongen Nybegynder
04. november 2002 - 18:48 #15
nu fejlen:

Warning: imagejpeg: unable to open '/filer/small/185932_041102bund.jpg' for writing in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 52

Warning: Unable to create '/filer/alm/185932_041102bund.jpg': No such file or directory in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55

Warning: Unable to move 'C:\WINNT\TEMP\phpBA5.tmp' to '/filer/alm/185932_041102bund.jpg' in D:\web\rasmus-madsen.dk_b4r0mo\wwwroot\eksperten\scale.php on line 55
Desværre er der sket en fejl!


hjælp..
Avatar billede eky Nybegynder
04. november 2002 - 18:55 #16
Jeg har kopieret el_barto's kode, og det virker fint hos mig.
Avatar billede taager-kongen Nybegynder
04. november 2002 - 18:56 #17
Avatar billede eky Nybegynder
04. november 2002 - 19:25 #18
Husk at der skal være skrive adgang i de biblioteker du prøver at uploade til.
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:26 #19
hvordan gør jeg det?
Avatar billede Slettet bruger
04. november 2002 - 19:30 #20
Du skal i dit FTP program give dem CHMOD 777

Hvilket program uploader du med?
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:31 #21
noget der hedder windows commander 32 gammelt lort.. cute ftp er ude af tiden (30 dage)
Avatar billede eky Nybegynder
04. november 2002 - 19:32 #22
Prøv at lægge denne linie umask(033); før din move_uploaded_file()
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:33 #23
hvordan?
Avatar billede eky Nybegynder
04. november 2002 - 19:34 #24
I din .php fil
Hvor har du webhotel?
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:34 #25
cliche..
Avatar billede eky Nybegynder
04. november 2002 - 19:37 #26
Underligt, når jeg prøver at uploade på din side, så er det ikke alle filer, der gi'r fejl.
Er der kommet noget op til dig?
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:38 #27
kun fejl..
Avatar billede eky Nybegynder
04. november 2002 - 19:44 #28
OK, ikke så underligt alligevel, for fejl skrives ikke ud;-))
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:46 #29
hvad skal jeg gøre??
Avatar billede taager-kongen Nybegynder
04. november 2002 - 19:47 #30
kom til at accetrer HJÆLP???
det var en fejl hvad skal jeg gøre?
Avatar billede eky Nybegynder
04. november 2002 - 19:51 #31
Du ka' få den retur, hvis du laver et svar her http://www.eksperten.dk/spm/279277
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