Проблема в том что при записи в файл, я получаю пустые файлы PHP: <?php class imeage_edit { function editsize($filename2,$width,$height){ // The file //$filename = 'test.jpg'; $filename = "temp_folder/" . $filename2; echo $filename; // Set a maximum height and width $width = 200; $height = 200; // Content type //header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output //imagejpeg($image_p, null, 100); return $image_p; } function image_virtue($outfile,$infile,$neww,$newh,$quality) { $im=imagecreatefromjpeg($infile); $im1=imagecreatetruecolor($neww,$newh); imagecopyresampled($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im)); imagejpeg($im1,$outfile,$quality); imagedestroy($im); imagedestroy($im1); return;} //header('Content-type: image/jpeg'); //image_virtue("","test.jpg",3264,2448,50); } function image_print($content){ header('Content-type: image/jpeg'); printf($content); } ?> Это класс которым я меняю размеры картинки. А вот сам код, которым я записываю в файл PHP: <?php $temp_miniIMG = $imeage_editor->editsize($row->url); echo "===="; var_dump($temp_miniIMG); echo "===="; $filename = "small_image/" . $album_name . "/".$row->url; // Открыть файл и установить указатель текущей позиции в конец файла $fh = fopen($filename, "w+"); // Записать содержимое $data в файл $success - fwrite($fh, $temp_miniIMG); // Закрыть файл fclose($fh); echo "OК"; в итоге получаю файлы 0 кб. перепробовал разные варианты. действия происходят на локале, так что права на запись есть. Что посоветуете?
$image_p, которую возвращает editsize() — это не картинка, а всего лишь ресурс (упрощённо — ссылка на картинку). Поэтому, записать его и не получается. Используйте imagejpeg($temp_miniIMG, $filename, качество ), ну, или аналогичную в зависимости от типа файла
Luge, Превосходно, но в этой функции есть побочный эффект. В браузере я могу наблюдать вот такой бред Код (Text): яШяа�JFIF������яю�wКwњ|Е6ЄмP@hґc*ѕЩXђ#�@ј;Љн` Џёну~^вЧЫiЭCDµR~хµЌдµO^–o·пR©>gJњ®§Q6дљ”.©у'Ј~dгouЮЬњЬИr[ЫЈЈо?1LЫCpНђйЂ0Tc†<–9ИKfђІHKK–YЄ7Ђ4{аі*“ћѓ¶ЉЋwgD“2#+3рT&CL†�ІЌј@’р`ЌbЊј±є±`CEґ�H%Ч/ЖУ…9'hR2TХҐisJRЅг‰5[єmЪоПK-ЦИОsЌЪЌ8B4гП~nWНRК.ТViE¦ЈНІqnТіЮ•ђ4{…ґ‚9y w›erњ(o•њєгjЗ‚Т2ЄMi+KrК‹(…‹?џl\` ИЯ2«)@X8Ьp@U\®e2Н„X¤ЫЂЉIа"ќ¤/М§9дeemФ4Dп,%љ(гЗњДьгМ.RE2тђYn`p 瞥ыкцpQ‚n2vu.дмнwЈo[®·hЪ–&K“Эsж•JЌ:”ЈО©8ы8ѕTУѓ›QХ_™тп#ґ·iMјcМєЌЬщЃ•нЛЌЄтЄб<Х.]јёР’КП–Я¤Ъі4Џmr^yЛюеЩY–AыИУD Ќт�A;>d,yўі"@Єј+ЄЇ)RXнзh *О0щ‰$'O§й:ЋіskҐй–WЧЪ†Ў,VVvP5НХХд…aі¶ґЃ –{‰ndxўЋ(V–B‰30QеЧ е”¬кФж“ЋйFM$”Znюн•Ь}ЫZнћоI&¤гFџ/,дЅз:NS~ъцiЖТI¦¬¤Ъ’pЉMІµыeвБ$w^EЇ›y(E·тЙ·Ќ¶мd(Д‚‘° �K!ШҐє]K‘Јѓнkц‰Љі}ћ ™ЛP¦$ыВW�FЋК ыMыБ~=ьnЦфsг§Щ>ь0Ф’КккgХф‹їлP^Ko%ћ‹¤XZэѕЗGёФ’w•Їui‘ґи”HъeЭЙ·µµя�mЏш!FќрчOРµпЩ~у_–qЇш[Г:пЂ|aq.©ц(јGЁЕ§я�ВW¤ш–;HћгIіЋA«C=•БЋmEmд‹P‚=&nЉь;њХГT«BѓIrrбЫЉЇR.s«N“»і©8Й)КњЬ)ЙУSP|ѕvЊш[ ЋЎ†ЕгЅ¤еМЮ&›upёzћЪ*kв!ЛN“QЊйыђ9EVќ'5я�0shwzҐАT7Ќn§ ы?bт6ШY)ОЧQri�FЭшfоћ~ЩpA‰,‘VUH·™"'†d6Рт»Є©|HБ”Pя�ѓznOУђ|wїЅЦµ=qtЙЇ-|9k§i=ў^¶Їm§Ы]кO}uesir–iА‚Hlо$•Ф»‹/Ъ?ю'¦ь%шI'‹~ьTсnс*ЖKзkѕЉЮХm®%HаЉ{-жТn®ґШдёыCЬ]БЪ&ќ,aЊ·‘бS…xЋTзl>BЌ:Ib)9Ф«Л{{8ЖWљiкщnТjNн›Ус‚ЈV6Зb*UДb#J¬§„ДВ• |оТUЄ*_»’pµЈ$“jqЊROщuѓGHDуЮ]П"±)jТ[?И`$№hб“*мБGВЋ][wQШЛ,VzeєЮ$i"YЈЋдИЌеЗ«ѕ8дтеwЊf_»'ъЕю�я�аЃ:¤? 4i4ЊЪЩшЇuem©ЯYЮшOYЏбо«©_?n-¬-µk}вчLRHУдјЅљvыCҐЕХ–џџІЇеgЗШц·эќmuЯ|BрFЎqбЅ VЛUсN‰Їh)Уt%–eXжХI№ёФфлy.^(цЈcoiТЗJs‰<МwgШ8№ХБJ;{G*ЌXSЉ§ЕUе…йОц•jEBi(ьSiЫЦКёї…3KRГfTбZ3tUFЅЪJku(ѕe(Эqй МFаГqpЕо.d/ЈG'Йжм’Э<ЙabђЄ"Є)VnZіпQ…¤(ёё†Э4.ds#©Њ*Eј•LBH%ужњD7—2M¤2¤k7“¦|шuMЛ$-#¶OОбњ«±ЊЇ}§ЩЙuZ?д6нж m>x�y]®$¶™\AЃ3•Ию¦?ѕJ‰ХҐJZ^_Eh+ZR‚‚‹•©ҐПгw%+Ы�oJJЌjкVQЊ&Ґ AФjNQ„э«”R•I№FkљKxїyp./жЧrG X,і<Лdyо7™ж…Ф‚“"п*±Шѓ,k.Щдљ{›Е1?- ђбUJѓ&ш•ҐEШОF ‹<µR›л·’бaµ–кKuё_·Jо ЄНз”Z В…GЖж@XЩ 2љ[EУ%‡м‘јЪґ«!vІ�HЂЛ„АVRІ7М<qµpЭиBr‹ќЁhЬ)^6i.~|D—3жM'9tІґRMКЮUJ^СRQД·Икb—ґr”гOШбФљ‚~хHSѓJ/ќ)NqљІ9›KЈ¦Bппµ{’Л&?v-^E4.‰№‘Ц!ёіё;*m\РюМ№»ФнћЏЙЌдe”жAЫ?SЛ/„Џ�Ы„њ…!‰'ТZуNЋk{aKќ№ђіЕw›Ш;c18GЪUJ™KcmЭТјz–‘o ЖЈ%ўJ“,ЕchоR%eµўДыЭC–ЮЄК 'њV[ДAIУГIКj\©$олЙВњUеkЄ1ЉµщU¶ч¬\°8IJЇЉ¦Ѕњ©9Й]ґЁENmµI§Љ«QJK‘»^ОQR<лДNLёCўxМN»33Ї›‚ЏжTА�е¶;1q’;a§Лimy1VЛ #)(Ђ”°e'ЕБRxbP7MэЈixМgТЊтI!}Ё’ЁИ8^И‹+0Э ‚Г ±–к7Vи– dс—МЂ"†`ЁА»” п°Лw�–щ}:u*УЊ0К‹NrЊ§gIыђеm«TжІiҐ}Ы“УcЛ©KR¬±ІДEЁF¤)· ЮТ2ќг4©$е9I5kЯg-TWcnсЄDС®Zр№щ$»Aтп]¤,Lѓ b@T•«=эўјМ–щh„A¤bѓjм ь«їЗc„��WDб?Ї.uMЕоп8Е7+=/-tJнivТ9Ў<=(*јй].U?w•ґУp¤УчњљmEґпn§ћ9]їлќ•�!v(V8 я�¬гЎЪ¬Fwd0rБ#0!іЕ‚QЉІ¶W grn6’БЃвр$pX0*@fЊ0я�Yњ| Ђ-№6ЇЁЫНg`ІЁ�ўmv°GБ,^%™8жП б—йl¶єm]Й·§EtФuЅљєєТОйkтН8¦щU§eКџВп&я�ехвпфґµIЫ™"eW‘В$?ї&тМ«–щХЉ3>gИ МЊFаUкјѕa!DИp]¶о$d6JІБ%А9вR7}В=И§/"ЂЂќЗ®pHPO©щ—ещ‰[hK– ЈW–+ґNw’КЉ2з�IRБHБеN~кI%ґ[јЇ®Яv·ЯDe%П.EЫЭ*“‚J*Л•)Ю*^уІMEYґчr@УщYCќЎ6/КH,д±TЂШ$З'жjЭµЉб…ёДЇ <›3ЧЛЪ|У?Лз‘№wА@A•RР·с’ЃК±ЯЋ+n#дБ ЁAЗ!‰;NФ6LмћZ®TKЫw1ЫјЛёд±g,rХ”oјum»Е«$µMу&фmхvкЋЄ4еfеNўеI{іЊ“M§ПS’[E6фnј№}wаЯБї?Яјm¤ш#бЇ†х?лЧьщV1щ–Z}є13кҐдЊ-4НМ–цюоTµ·]Є]ЬВІя�O?їа?я�я�fkп„џµ,~:Т<{↧†јuг[iQЙ§Я¬,љ®‹бiЭ®.gХ¬l®-Їґiµ.Эu+ИбЋ#¦ЛqЕ—иьамЫ¦~Зџ|[бЭ2БuЌsб‚шЏЗ:Н¤)wyuв•mKMс…Ф®Боn5Я\эЈN‚9X·ІУв·SEqыµс:УOУѕ^O¦µ¬©oboYb¶71ivЧђЬH[{A±±љтD•KИ|Е(d•’ъlї&ГB4qїЪ+N4кC–\ЄЏьЅ^О1v”№”/)_›–КС»њgјWЋ©,N юЗ†Ј,VјЄУS©Љї6|уљ“ЈWYSЊ{(№O›–+Зя�gOш/вї‡t/hєѕЌЁиъѕџim¬ipyљРtvы^‘#hЪeџЙћ Ъd’/ЬЯZZк0Hkз_ш)н!а/ЩПᆥсYЦDћрџЉј§ZiЦos¶ѕ Ѕс¶‹§Й ШИлs¬�5w©x¤и·)k,ъ~ѓq:П%ЅкЬЩя�W¶џЖoЩ7ціэ ¤шKвЌkбМѕ$кpшZѕЅЏCґyьc©ЅЬ>dєMCDѕУ®®nм-56т/=-ўЅЅµєl|ЯцЦя�‚†|xэ№їбґш“•бПшж{эГzЬI&Ј¬ЬЩ‹k~'Х'&]sUУм|Ы :hмґИlн//Т;gёФ.®_ьMѓҐKЎw‹Ґ)С…9/iNҐhКQSзЊгjIУs”,ЅдУЉ’жzаш3ЇЉБ{TћW?T±ДТ—іO *0©мЭA№b\jЖњjEНF ЛљtеЛпзц_шµрУвџ…<вЌ+SЋk)ьCq¬ЪЕo,WђjZћЅбНs]ёKKл@QфЧ°Ц®еіФ�·¶ЋwYю^э¶я�m/ѓ ю"ь#ш{Їx—LУ[вПД ьCыJТОбЇгCЄjМ)o§ЯBљ%ЭнД‘ЫйєОїi5ЛKeФ‘і'ь;цЄэ�?ш+Вуx{Жћрґ3ГбН+ЖzuЬ·~1лvћ…©h:ЌЭќіk—Ж3\№Цmm –;+(мн ·…<+г‡нсcц™шЃя�вЏ?PХ¬ффТф-&ТО=3KР¬>С5лYй6±Кпћюо{ы»Ы»©хByЮвццвXгuеДq~†ќjTЫЖMRЅ9ЕЄtщќ8ХјгQ¦ҐпF“Vn.3џВвэ,†yћ'?Гb«(et}јг‰„©Ф«?ЊUiбїu:QtЪNњл¦е:sҐKџљЏъIxД%Ю™wЇ_шЈЕйєfќg4є,Ю·џL•/}Ћ]"ыOСгPYTщб,uЌRu]‰xVxҐшkцЛш«рлЖ^ ёшqв_к~!шрЧ? <—KYш‚с„ шЉъдљтmJ]GФ'Ч&ЋТЗH…aіт.ж…'ЋfюVј я�tэ«|р^Гб,Si Согласен, картинки появляются в нормальном виде... Но это не дело..
imagejpeg() не выводит в браузер, если вторым параметром идёт имя файла для записи. Так что это проблема не в функции
Это все очень странно, так как запись в цыкле while, и первое изображение не может записаться, потому и выводит на экран, а остальные записывает нормально, уже 3 раза менял изображения, безрезультатно... PHP: while($row = mysql_fetch_object($result)) {$temp_miniIMG = $imeage_editor->editsize($row->url); echo "===="; var_dump($temp_miniIMG); echo "===="; imagejpeg($temp_miniIMG, $filename, 100 ); $filename = "small_image/" . $album_name . "/".$row->url; // Открыть файл и установить указатель текущей позиции в конец файла $fh = fopen($filename, "w+"); // Записать содержимое $data в файл $success - fwrite($fh, $temp_miniIMG); // Закрыть файл fclose($fh); echo "OK====";}
УПС.... а тогда это нужно? PHP: $fh = fopen($filename, "w+"); // Записать содержимое $data в файл $success - fwrite($fh, $temp_miniIMG); // Закрыть файл fclose($fh);