[php] image resize ftp_put()

Pagina: 1
Acties:
  • 119 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 28-07 15:05
ik heb op mijn server geen rechten om als apche(www) gebruiker, bestanden te plaatsen of te wijzigen. hier voor moet ik met php als ftp gebruiker inloggen.
het lukt me nu wel om beelden te uploaden maar ze resizen en dan opslaan loop ik vast.
ik krijg de fout bij:
$thumb=imagejpeg($dst, $th_name)

iemand enig idee

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<form action="upload3.php" method="post" enctype="multipart/form-data" name="form1">
<input name="file" type="file" id="file">
<input type="submit" name="Submit" value="Submit">
<input name="up" type="hidden" id="up" value="up">
</form>
<pre>
<?
if($HTTP_POST_VARS['up']){


    $conn = ftp_connect("**ftpadres**");
    ftp_login($conn, "**users**", "**pass**");

    ftp_put($conn, $file_name, $file, FTP_BINARY);

    $inputImg = ImageCreateFromJPEG($file_name);
    $srcX = imagesx($inputImg);  
    $srcY = imagesy($inputImg); 
    $xp=75;
    $yp= 50;
    $dst = imagecreate($xp,$yp); 
    imagecopyresized($dst,$inputImg,0,0,0,0,$xp,$yp,$srcX,$srcY)
    or die("de eerste ");
    $th_name="T_".$file_name;
    $thumb=imagejpeg($dst, $th_name)
    or die("de tweede");  

     ftp_put($conn, $th_name, $thumb, FTP_BINARY); 

    $filelist = ftp_nlist($conn, ".");
    print_r ($filelist);
    ftp_quit($conn);    
}
?>
</pre>

Acties:
  • 0 Henk 'm!

  • Logic
  • Registratie: Juni 2000
  • Laatst online: 14-09 22:01

Logic

SmartOS:Love at First Boot

de ; op het einde van de regel mist

If it bleeds, it can be killed!


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

- Gooi het naar het scherm en vang het af met ob_start en ob_get_contents?
- Mag je ook geen tmp files maken, je kan tenslotte ook uploaden met een form pagina?
Logic schreef op 23 September 2003 @ 12:30:
de ; op het einde van de regel mist
Nee hoor, hij gaat alleen door op de volgende regel met or die("");

[ Voor 59% gewijzigd door LuCarD op 23-09-2003 12:34 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
die tweede optie weglaten, dan krijg je het in je variabele. dus:
PHP:
1
2
3
    $thumb=imagejpeg($dst, $th_name)
// moet worden
    $thumb=imagejpeg($dst)

en dan lukt het, denk ik, wel

je moet dan wel de output bufferen, check de ob_* functies

[ Voor 14% gewijzigd door Hmmbob op 23-09-2003 13:11 . Reden: toevoeging ob_* ]

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 28-07 15:05
LuCarD schreef op 23 September 2003 @ 12:32:
- Gooi het naar het scherm en vang het af met ob_start en ob_get_contents?
- Mag je ook geen tmp files maken, je kan tenslotte ook uploaden met een form pagina?
he bedoel je dat met ob_start en ob_get_contents,

en ja mag wel tmp files maken maar kan functies zoals copy(); mkdir(); niet gebruiken

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Het probleem is dat de ene een bestand is en de andere de inhoud van een bestand.

$file is het geuploade bestand. hierin staat gewoon een bestands naam. $thumb is echter de binaire data die in het bestand zou moeten staan. De oplossing is dus waarschijnlijk dat je je thumb op de tmp zult moeten aandraaien, en dit tmp bestand vervolgens via ftp uploaden.

[ Voor 23% gewijzigd door Janoz op 23-09-2003 13:20 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 28-07 15:05
oke begin het beetje te begrijpen, ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ob_start();
$thumb=imagejpeg($dst);


    $output = ob_get_contents(); 
    ob_end_clean(); 

  
    $file = fopen("eentempbestand.jpg", "w");
        fputs($file, $output); 
    fclose($file);
    
     ftp_put($conn, $th_name, $file, FTP_BINARY); 

    ftp_quit($conn);    
}


alleen hoe maak ik een temp bestand aan. want bij
$file = fopen("eentempbestand.jpg", "w");
loopt hij me vast.

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

GoVegan schreef op 23 september 2003 @ 13:13:
[...]


he bedoel je dat met ob_start en ob_get_contents,

en ja mag wel tmp files maken maar kan functies zoals copy(); mkdir(); niet gebruiken
gebruik temp files.

PHP:
24
25
26
27
28
29
$temp_name= tempnam (SERVER_TEMP_DIR,"Tmp");
$th_name="T_".$file_name; 
$thumb=imagejpeg($dst, $temp_name) 
    or die("de tweede");   

ftp_put($conn, $th_name, $temp_name, FTP_BINARY);


Probeer dit eens
Janoz schreef op 23 September 2003 @ 13:19:
$file is het geuploade bestand. hierin staat gewoon een bestands naam. $thumb is echter de binaire data die in het bestand zou moeten staan. De oplossing is dus waarschijnlijk dat je je thumb op de tmp zult moeten aandraaien, en dit tmp bestand vervolgens via ftp uploaden.
$thumb is een integer.
int imagejpeg ( resource image [, string filename [, int quality]] )

[ Voor 35% gewijzigd door LuCarD op 23-09-2003 13:33 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Waarom gebruik je ob_start en ob_end? AFAIK staat je data al in thumb dus lijkt het me voldoende om die data weg te schrijven. Het aanmaken van een temp bestand zal natuurlijk moeten gebeuren in de temp directory.....

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 28-07 15:05
ke dan,
mag ik u allemaal heel erg bedanken _/-\o_ , ik heb het voor elkaar.
voor degene die de search gebruiken, hier mijn code

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
if($HTTP_POST_VARS['up']){


    $conn = ftp_connect("FTP SERVER");
    ftp_login($conn, "USERNAME", "PASS");


    ftp_put($conn, $file_name, $file, FTP_BINARY);

    $inputImg = ImageCreateFromJPEG($file_name);
    $srcX = imagesx($inputImg);  
                $srcY = imagesy($inputImg); 
    $xp=75;
    $yp= 50;
    $dst = imagecreate($xp,$yp); 
    imagecopyresized($dst,$inputImg,0,0,0,0,$xp,$yp,$srcX,$srcY)
    or die("de eerste ");


$temp_name= tempnam (SERVER_TEMP_DIR,"Tmp");
$th_name="T_".$file_name; 
$thumb=imagejpeg($dst, $temp_name);
ftp_put($conn, $th_name, $temp_name, FTP_BINARY);

    ftp_quit($conn);    
}
?>
Pagina: 1