Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Image atvaizdavimas iš FTP
Parašė IPaulius· 2011 Bir. 24 12:06:08
#1
Sveiki. Kaip patalpinti paveiksliuką į FTP jau išmokau. O kaip jį atvaizduoti?
Parašė Erikas.· 2011 Bir. 24 12:06:12
#2
<img src="URL_IKI_PIC" />
Parašė IPaulius· 2011 Bir. 24 13:06:53
#4
Viskas aišku. Maniau čia kaip nors mandriau :) Ačiū.
Parašė IPaulius· 2011 Bir. 24 13:06:04
#5
Kažkas blogai. Yra public_html folderis. Į jį įkėliau upload folderį ,kuriame ir talpinami visi paveiksliukai.
Parašau nuorodą
www.pavadinimas.com/public_html/.../image.jpg ,bet neveikia...
O jei įkeliu paveiksliuką prie visų
php failų ir nurodau tiesiog <img src="paveiksliukas.jpg"/> tuomet veikia...
Redagavo IPaulius· 2011 Bir. 24 13:06:14
Parašė IPaulius· 2011 Bir. 24 15:06:19
#8
Kai taip įvedu į naršyklę
www.saitas.lt/upload/image.jpg paveiksliuką rodo ,bet jei įrašau taip <img src="www.saitas.lt/upload/image.jpg"/> nerodo. Kame problema?
Parašė Ponas24· 2011 Bir. 24 15:06:07
#9
Kai taip įvedu į naršyklę
www.saitas.lt/upload/image.jpg paveiksliuką rodo ,bet jei įrašau taip <img src="www.saitas.lt/upload/image.jpg"/> nerodo. Kame problema?
<img src="http://saitas.lt/upload/image.jpg"/>
Parašė IPaulius· 2011 Bir. 24 17:06:44
#10
Pagaliau! Ačiū, aliuxazzz. +11. Dabar gal kas netyngėsit parašyt kaip atvaizduoti visus paveiksliukus iš upload folderio?
Parašė switz· 2011 Bir. 24 17:06:42
#11
Kiek paveiksliuku tiek ir tokiu koduku dek <img src="http://saitas.lt/upload/image.jpg"/>
Parašė IPaulius· 2011 Bir. 24 18:06:17
#12
O jei man reikia ,kad įterpus paveiksliuką į FTP jis iškart atsirastų tinklapyje?
Parašė Faitas.· 2011 Bir. 24 18:06:41
#13
Čia jau reiktų naudoti ciklą ir FTP funkcijas.
Čia rasi FTP funkcijas:
http://php.net/manual/en/book.ft... . Turbūt tinkamiausia funkcija būtų
ftp_nlist, ši funkcija tau gražina masyvą su failų pavadinimais. Tada su ciklu, pavyzdžiui while, eini per ciklą ir rodai paveiksliukus. :)
Paprasčiausias pavyzdys:
<?php
// Prisijungiame prie FTP
$conn_id = ftp_connect($ftp_server);
// Prisijungimo duomenis
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // FTP serveris, vartotojo vardas, slaptažodis
// Gauname visą list'ą failų pagrindinėje direkrotijoje
$contents = ftp_nlist($conn_id, "/www/uploads"); // Jei norėsi kur nors kitur, tai mano nurodytą direktoriją pasikeisi
//Ciklo kintamasis
$i = 0; // Masyvo elementai prasideda nuo 0
// Rodome visus paveiksliukus
while($i < sizeof($contents))
{
echo "<img src='http://www.puslapis.lt/uploads/$contents[$i]' />";
$i++; // Padidiname ciklo kintąjį 1
}
?>
Turėtų veikti. :)
Parašė IPaulius· 2011 Bir. 25 13:06:57
#14
O kaip perduoti FTP prisijungimo duomenis į šį kodą?
Parašė IPaulius· 2011 Bir. 25 13:06:56
#15
Na lygtai prisijungiau.
Parašė Faitas.· 2011 Bir. 25 13:06:09
#16
Gali naudoti define:
define("ftp_user_name", "vartotojo vardas"); // FTP vartotojo vardas
define("ftp_user_pass", "slaptažodis"); // FTP slaptažodis
Ir tada vietoj to prisijungimo kintamųjų:
$login_result = ftp_login($conn_id, ftp_user_name, ftp_user_pass); // FTP serveris, vartotojo vardas, slaptažodis
:)
Redagavo Faitas.· 2011 Bir. 25 13:06:44
Parašė IPaulius· 2011 Bir. 25 13:06:44
#17
Prisijungt jau sugebėjau. Tiesiog duomenis suvedžiau ir viskas. Dabar yra taip. Rodo visus paveiksliukus iš FTP ,bet šalia jų dar dvi neveikiančių paveiksliukų ikonos...
Parašė nbanba· 2011 Bir. 25 13:06:50
#18
Jei nerodo, tai turbūt ten yra direktorija arba koks nors .php failas.
Parašė Faitas.· 2011 Bir. 25 14:06:31
#19
Taip, gali būti. Čia jau reiktų dirbti su if'ais. :) Ir tikrinti koks failas, kad nebūtų tokių bėdų kaip dabar.
Parašė IPaulius· 2011 Bir. 25 14:06:25
#20
Va. Padariau ,kad kintamajį pradėtų ne nuo 0 ,bet nuo 2 ir viskas gerai. Galbūt kinatamasis pasiima folderį ir jį atvaizduoja kaip paveiksliuką?
Vo, kaip NBANBA sakė. Turbūt taip ir yra.
Redagavo IPaulius· 2011 Bir. 25 14:06:08
Parašė IPaulius· 2011 Bir. 25 14:06:03
#21
Dabar atvaizduoja tuos paveiksliukus iš eilės. O kaip atvaizduoti pagal datą? Kad pavyzdžiui seniausias paveiksliukas būtų paskutinis ,o naujesni būtų priekyje?
Aš turiu kodą pagal ,kurį atvaizduoja tekstą iš
mysql pagal senumą ,bet dabar FTP ,o čia nelabai gaudausi.
Redagavo IPaulius· 2011 Bir. 25 14:06:57
Parašė Faitas.· 2011 Bir. 25 14:06:25
#22
Yra FTP funkcija:
Su čia funkcija gali gauti paskutinę failo atnaujinimo datą, tai jei įkelsi į FTP, tai ir bus atnaujinimo data nustatyta, tada kai įkėliai :)
EDIT: Pamiršau parašyti kaip gauti visus mažėjimo tvarka :D
Jeigu jau gauni $contents kintamąjį, tai gali sužinoti visų failų datas
$j = 0;
while($j < sizeof($contents)
{
$file_date = file_mdtm($conn_id, $contents[$j]); // Gauname failo datą
$dates[] = array($file_date, $contents[$j]); // Surašome viską į masyvą
}
rsort($dates); // Rušiuojame failus pagal datas
foreach($dates as $date)
{
echo "<img src='" . $date "' />"; // Išvedame visus failus pagal datą
}
Nebandžiau, bet turėtų veikti. :)
Redagavo Faitas.· 2011 Bir. 25 15:06:18
Parašė IPaulius· 2011 Bir. 25 16:06:51
#23
Viską sujungus ką rašei gaunu kodą tokį:
<?php
// Prisijungiame prie FTP
$conn_id = ftp_connect('pavadinimas.com') or die("Could not connect: ");
// Prisijungimo duomenis
$login_result = ftp_login($conn_id, 'user_name' , 'password') or die ("Blogi duomenys"); // FTP serveris, vartotojo vardas, slaptažodis
// Gauname visa list'a failu pagrindineje direkrotijoje
$contents = ftp_nlist($conn_id, "/public_html/upload"); // Jei noresi kur nors kitur, tai mano nurodyta direktorija pasikeisi
//Ciklo kintamasis
$j = 0; // Masyvo elementai prasideda nuo 0
// Rodome visus paveiksliukus
while($j < sizeof($contents))
{
$file_date = file_mdtm($conn_id, $contents[$j]); // Gauname failo data
$dates[] = array($file_date, $contents[$j]); // Surašome viska i masyva
}
rsort($dates); // Rušiuojame failus pagal datas
foreach($dates as $date)
{
echo "<img src='".$date."'/>"; // Išvedame visus failus pagal data
}
?>
Ir rodo klaidą šioje eilutėje :
$file_date = file_mdtm($conn_id, $contents[$j]);
Klaida: Fatal error: Call to undefined function file_mdtm() in /home/public_html/album.php on line 83
Redagavo IPaulius· 2011 Bir. 25 16:06:53
Parašė avice· 2011 Bir. 25 17:06:39
#24
o ta kartais ne tokia turi but ftp_mdtm();?
Parašė Faitas.· 2011 Bir. 25 18:06:07
#25
Uoj, padariau klaidą. :D Atsiprašau
Parašė IPaulius· 2011 Bir. 25 19:06:16
#26
Dabar rašo : Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 64 bytes) in /home/public_html/album.php on line 84
Eilutėje: $dates[] = array($file_date, $contents[$j]);
Parašė Faitas.· 2011 Bir. 26 12:06:20
#27
Pabandyk pakeisti į:
$dates[] = array($contents[$j] => $file_date);
Dar gali pabandyti ir:
$dates[] = array('$contents[$j]' => '$file_date');
Parašė IPaulius· 2011 Bir. 26 13:06:23
#28
Kai pakeičiu $dates eilutę , tuomet problema atsiranda šitoje eilutėje:
$file_date = ftp_mdtm($conn_id, $contents[$j]); ir problema ta pati : Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 24 bytes) in /home/public_html/album.php on line 83
Parašė Ponas24· 2011 Bir. 26 13:06:51
#29
Kai pakeičiu $dates eilutę , tuomet problema atsiranda šitoje eilutėje:
$file_date = ftp_mdtm($conn_id, $contents[$j]); ir problema ta pati : Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 24 bytes) in /home/public_html/album.php on line 83
Gal testuoji kokiam nemokamam šūdinam hoste?
Parašė IPaulius· 2011 Bir. 27 11:06:57
#31
Pagal mane tai čia sukurtas amžinas ciklas todėl neištempia hostas. Niekur nėra $j++; Andriau, gelbėk :)
Parašė Faitas.· 2011 Bir. 27 12:06:02
#32
Taip, pataisyk kodą į šitą:
<?php
// Prisijungiame prie FTP
$conn_id = ftp_connect('pavadinimas.com') or die("Could not connect: ");
// Prisijungimo duomenis
$login_result = ftp_login($conn_id, 'user_name' , 'password') or die ("Blogi duomenys"); // FTP serveris, vartotojo vardas, slaptažodis
// Gauname visa list'a failu pagrindineje direkrotijoje
$contents = ftp_nlist($conn_id, "/public_html/upload"); // Jei noresi kur nors kitur, tai mano nurodyta direktorija pasikeisi
//Ciklo kintamasis
$j = 0; // Masyvo elementai prasideda nuo 0
// Rodome visus paveiksliukus
while($j < sizeof($contents))
{
$file_date = file_mdtm($conn_id, $contents[$j]); // Gauname failo data
$dates[] = array($file_date, $contents[$j]); // Surašome viska i masyva
$j++;
}
rsort($dates); // Rušiuojame failus pagal datas
foreach($dates as $date)
{
echo "<img src='".$date."'/>"; // Išvedame visus failus pagal data
}
?>
Parašė IPaulius· 2011 Bir. 27 14:06:41
#33
Vėl file_mdtm(); :) $dates rašo ,kad yra tiesiog Array. Tai nuoroda būna
http://pavadinimas.webatu.com/Ar...
Šiaip jei nori gali nebevargti ,nes kodas jau yra. Tiesiog ,kad patirties gautum gali pabandyti sutvarkyti ir šioje temoje bus du teisingi kodai.
Štai veikiantis kodas atvaizduojantis paveiksliukus iš FTP serverio ir rodantis juos pagal datą. Naujausi pradžioje ,o seniausi pabaigoje:
<?php
$dirname = rtrim(dirname(__FILE__), '/\\') ."/upload/";
$files = glob( $dirname.'*.*' );
array_multisort(array_map( 'filemtime', $files ), SORT_NUMERIC, SORT_DESC, $files);
foreach($files as $file)
{
echo "<img src='upload/".basename($file)."' width='150px' height='150px' />";
}
?>
Redagavo IPaulius· 2011 Bir. 27 14:06:03