Billeder bliver ødelagt ved flytning?

Tags:    php

<< < 123 > >>
Hejsa.
Sidder og har et lille problem, har lavet et lille script der kopiere et billede fra en url, uploader det til min server og får det resized.

Problemet er bare at nogle af billederne bliver bare helt sorte, men i den rigtige størrelse... Hvad kan det skyldes? Kan det være fordi billedet ikke er helt downloadet før den hopper videre til næste trin?


Dette er koden jeg bruger (minus funktionerne)
Fold kodeboks ind/udPHP kode 




23 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Tag fat i kilden. Måske den findes, måske den ikke findes, måske filen er speciel, måske det er en anden type billede, end dit script kan klare - eller måske noget andet er galt.

Prøv manuelt at skalere det problematiske billede, med rå PHP kode, uden dine funktioner.
Da vi ikke aner - så at sige, en flyvende fis - hvordan din kode ser ud, er det som at stikke en finger i vejret og håbe vinden blæser i den rigtige retning. Du viser os fire linjer kode, der er hjemmelavede funktioner, som dækker over mere end bare de fire linjer. Så vores gæt er mindst lige så godt som dit. Det er af alene den grund, at vi ikke kan se hvad dine hjemmelavede funktioner gør.

Hvis de virker som de skal, ville de virke i 100% af alle tilfælde. Du har 90% funktionsdygtige tilfælde, ergo virker funktionerne jo ikke som de skal. Med mindre at du har kendte begrænsninger i dine funktioner.

Så tag fat i kilden, og start med analyser fremad. Eller tag fat i resultatet og analyser bagud.



Indlæg senest redigeret d. 21.07.2012 23:41 af Bruger #10216
Prøv, at konvertere url ($pic stien) med urlencode() inden du sender den videre til file_get_contents, som det også er foreslået på: http://php.net/manual/en/function.file-get-contents.php



Er det kun din resize som har et problem med de mellemrum? Så kunne du jo rename filen, inden du resizer.



Og hvad funktioner kalder resizeImage og saveImage ?




Det er dem der går ind og resizer og gemmer billedet.

Men dem burde der ikke være noget galt med? Da 90% af alle billederne cirka går igennem uden problemer, men er lige et par stykker ind i mellem der bliver sorte, og det er både gif og jpegs der bliver helt sorte nogle gange..



Den her falder mig lige i øjnene:

file_put_contents("../webshop-imgs/$filnavn",file_get_contents($pic));

Tager du højde for, om filen allerede findes?

Hvorfor kopierer du ikke bare filen.
http://dk2.php.net/manual/en/function.copy.php



Kan ikke kopiere filen, da originalen ikke ligger på min server.

Og filen kan ikke eksitere i forvejen, da $filnavn er unikt med timestamp



Har du så billeder inden du resizer dem for så kan du jo se om der er noget galt med dem inden du resizer.

Undersøg hvad slags billede det er.

Jeg syntes der var en anden for noget tid siden der skrev om noget ligende hvor der var nogen bestemte typer der ikke virkede eller sådan noget.

Men prøv og se hvad resizeImage() og saveImage() kalder for funktioner.




De 2 funktioner er bare funktionerne der resizer og gemmer filerne til min server.

Og nej er lige meget hvilken type fil det er, den har lavet fejlen både ved jpg, png og gif nu nemlig..

Men vil da prøve at se om jeg kan ramme et billede der fejler, så jeg kan teste om det er før eller inden resize fejlen sker.



Ja men der er jo ikke nogen funktion i php der hedder resizeImage() de må kalde nogen andre funktioner jo.



<< < 123 > >>
t