[PHP] imagejpeg(): unable to open for writing

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Barracuda_82
  • Registratie: September 2001
  • Laatst online: 19-12-2024

Barracuda_82

mkTime(), not war!

Topicstarter
In een thumbnailer gebruik ik de volgende code. Deze code wordt in een andere class ook gebruikt en werkt daar vlekkeloos.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
list( $width, $height ) = getimagesize( $this->imageRef );          
$tImage_c = imagecreatetruecolor( $this->tWidth, $this->tHeight ); 
$tImage = imagecreatefromjpeg( $this->imageRef );

$ar = $this->tWidth / $this->tHeight; 
$scaleFactor = $width / $this->tWidth; 
$cropY = $width / $ar; 
$y = $height / $scaleFactor;
$y = ($y - $this->tHeight ) * $scaleFactor / 2;

imagecopyresampled( $tImage_c, $tImage, 0, 0, 0, $y, $this->tWidth, $this->tHeight, $width, $cropY ); 

try {
    if(!imagejpeg( $tImage_c, $pathTo, 100 ));
      throw new Exception();
}
catch( Exception $e ) {
    $this->throwError( "kon thumbnail niet wegschrijven met bestandsnaam $pathTo " . $e->getMessage() ); 
}

Nu gebruik ik deze functie ook in mijn class, maar natuurlijk gaat het mis:
code:
1
2
3
4
5
Warning: 
imagejpeg() [function.imagejpeg]: 
Unable to open 
'/var/www/......./beeldenbankImages/tumb/4326ce43c6e5e.jpg' 
for writing

Na een hoop gezocht te hebben kwam ik steeds overal hetzelfde tegen. De rechten van de doeldirectory zijn niet goed geset. Mijn collega heeft de dir gechowned naar 777 en de owner op WWW-DATA gezet. Dit moet (volgens alle andere topics) de oplossing zijn. Maar toch blijft hij bij mij altijd een error geven.

Kan het zijn dat deze error ook ergens anders door ontstaat dan door de rechten/owner?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Niet bestaand pad, schijf vol, teveel open files. Ik zie in je melding trouwens tumb staan. Ben je consequent met die schrijffout?

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!

  • Barracuda_82
  • Registratie: September 2001
  • Laatst online: 19-12-2024

Barracuda_82

mkTime(), not war!

Topicstarter
Janoz schreef op dinsdag 13 september 2005 @ 15:15:
Niet bestaand pad, schijf vol, teveel open files. Ik zie in je melding trouwens tumb staan. Ben je consequent met die schrijffout?
Ja, "tumb" heb ik in het begin al een keer verkeerd geschreven. Zoek het niet om dit overal weer aan te passen, maar ik ben wel consequent met deze spelfout.

- Het pad bestaat wel.
- Schijf heeft nog 119 GB vrij
- Te veel open files... hoe kan ik dat controleren?

Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Barracuda_82 schreef op dinsdag 13 september 2005 @ 15:12:
Na een hoop gezocht te hebben kwam ik steeds overal hetzelfde tegen. De rechten van de doeldirectory zijn niet goed geset. Mijn collega heeft de dir gechowned naar 777 en de owner op WWW-DATA gezet. Dit moet (volgens alle andere topics) de oplossing zijn. Maar toch blijft hij bij mij altijd een error geven.
Heeft je collega dat wel recursief gedaan ?
Dus dat ook de sub-dirs de juiste rechten hebben ?

Schrijf je een nieuwe file of probeer je een bestaande te overschrijven ?

edit:

BTW, ik neem aan dat de dir ge chmod 777 is en niet chown

[ Voor 9% gewijzigd door u_nix_we_all op 13-09-2005 15:24 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • Barracuda_82
  • Registratie: September 2001
  • Laatst online: 19-12-2024

Barracuda_82

mkTime(), not war!

Topicstarter
u_nix_we_all schreef op dinsdag 13 september 2005 @ 15:21:
[...]

Heeft je collega dat wel recursief gedaan ?
Dus dat ook de sub-dirs de juiste rechten hebben ?

Schrijf je een nieuwe file of probeer je een bestaande te overschrijven ?

edit:

BTW, ik neem aan dat de dir ge chmod 777 is en niet chown
Ja, alle dirs zijn recursief gechmod.

Ik maak een nieuw bestand (een thumb).

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Laatst online: 20:47
Is www-data wel echt de gebruiker waaronder je webserver draait? Mooi als dat uit een ander topic komt als oplossing, maar bij mij is het bv. nobody. Misschien een safe-mode beperking?

Acties:
  • 0 Henk 'm!

  • Barracuda_82
  • Registratie: September 2001
  • Laatst online: 19-12-2024

Barracuda_82

mkTime(), not war!

Topicstarter
dajappie schreef op dinsdag 13 september 2005 @ 16:01:
Is www-data wel echt de gebruiker waaronder je webserver draait? Mooi als dat uit een ander topic komt als oplossing, maar bij mij is het bv. nobody. Misschien een safe-mode beperking?
We hebben zowel Nobody als WWW-DATA geprobeerd. Werkt allemaal niet.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Barracuda_82 schreef op dinsdag 13 september 2005 @ 16:36:
[...]
We hebben zowel Nobody als WWW-DATA geprobeerd. Werkt allemaal niet.
Dat zou ook niet moeten boeien als er idd naar 777 is gchmod.
Heb je dat ook gechecked met een is_dir(dirname($pathTo)); ? Je zal de eerste niet zijn die zich blind staart op een simpele typo ;)

Regeren is vooruitschuiven


  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Barracuda_82 schreef op dinsdag 13 september 2005 @ 15:12:
code:
1
2
3
4
5
Warning: 
imagejpeg() [function.imagejpeg]: 
Unable to open 
'/var/www/......./beeldenbankImages/tumb/4326ce43c6e5e.jpg' 
for writing
Staat /....../ echt in het path ? /......../ is iets wat alleen Windows snapt, de rest van de wereld niet. MAW : ../../../../ gebruiken als je die /......./ constructie daadwerkelijk gebruikt.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
igmar schreef op woensdag 14 september 2005 @ 14:34:
[...]


Staat /....../ echt in het path ? /......../ is iets wat alleen Windows snapt, de rest van de wereld niet. MAW : ../../../../ gebruiken als je die /......./ constructie daadwerkelijk gebruikt.
Lijkt me censuur ;) Sowieso kun je niet /foo/bar/../../../ krijgen, aangezien je dan een niveau lager zit dan / :P Ook zijn 't 7 puntjes, oneven, dus geen samenraapsel van /../-vormen lijkt me :)
Pagina: 1