2009-08-13 8 views
0

Je l'habitude de le faire en téléchargeant l'image à la base de données, mais plus tard appris son mauvais chemin parce que lorsque vous essayez d'exporter la base de données si vous déplacez de localhost à serveur les images ne viennent pas :(donc anywho, le script que j'ai ici est d'obtenir l'image, le recadrer, lui donner un nom aléatoire et le déposer dans le dossier de la galerie, mais pour une raison quelconque ne fonctionne pas, et je ne peux pas comprendre it out .. si quelqu'un peut me aideressayant de recadrer et de télécharger une image dans un dossier en PHP

grâce

if(isset($_POST['submit']) && $_FILES['galleryimg']['size'] > 0) { 


$tmpname = $_FILES['galleryimg']['tmp_name']; 
$imgsize = $security->secure($_FILES['galleryimg']['size']); 
$imgtype = $security->secure($_FILES['galleryimg']['type']); 


//crop image 
$canvas = imagecreatetruecolor(219,127); 
$imgattrib = getimagesize($tmpname); 
$source = imagecreatefromjpeg($tmpname); 
imagecopyresized($canvas,$source,0,0,0,0,219,127,$imgattrib[0],$imgattrib[1]); 
$name = rand(1234,43211234).".png"; 



ob_start(); 
imagepng($canvas); 
//$image = ob_get_contents(); 
imagepng($canvas,'/uploads/gallery/'.$name); 
ob_end_clean(); 

} 

BTW, une fois que les images sont téléchargées comment puis-je lire le dossier displa y les images? Ob_end_clean ignore les informations que vous avez mises en mémoire tampon.

Répondre

1

Tout d'abord, avez-vous vraiment un /uploads/gallery/ sur votre serveur?

Notez le chemin, ici, commence par une barre oblique (il est un chemin « absolu »), ce qui signifie uploads doit être à la racine du système de fichiers.

Si votre répertoire uploads n'est pas à la racine du système de fichiers, vous devez supprimer la première barre oblique; et/ou utiliser un chemin relatif; et/ou utilisez un chemin absolu qui pointe vers le répertoire réel.

Peut-être que vous vouliez dire quelque chose comme ceci:

dirname(__FILE__) . '/uploads/gallery/' . $name 

Voir dirname et __FILE__


Une fois les images téléchargées, vous voulez qu'ils soient accessibles via HTTP?

Si oui, votre répertoire uploads/gallery/ doit se trouver dans la racine de document configurée pour votre serveur; et vous serez en mesure d'accéder aux images avec des URL comme http://www.example.com/.../uploads/gallery/12345.png


En sidenote: votre deuxième appel à imagepng devrait créer un fichier contenant l'image; il ne devrait rien sortir.

Le premier, au contraire, devrait afficher l'image ... Mais pourquoi utilisez-vous celui-ci aussi, si vous voulez créer un fichier?
Et: si vous supprimez le premier (inutile?) Appel, vous pourrez également supprimer les fonctions de tampon de sortie. (de toute façon, vous n'utilisez pas les informations en mémoire tampon, il semble ... donc le premier appel à imagepng est inutile, je dirais?) Si cela ne fonctionne pas beaucoup


... Qu'est-ce que voulez-vous dire par ceci:

mais pour une raison quelconque, il ne fonctionne pas, et je ne peux pas le comprendre ..

Avez-vous une erreur, par exemple?

Vous pouvez utiliser ceci:

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 

au début de votre script afin d'être affichées, BTW: les messages d'erreur peuvent être utiles (si vous avez certains que vous ne comprenez pas, vous pourrait modifier votre question pour les ajouter: ils pourraient être utiles pour vous aider)


Ce ne sera probablement pas résoudre votre problème ...
Mais j'espère que ça va vous donner quelques conseils utiles ...

Bonne chance!

Questions connexes