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šė switz· 2011 Bir. 24 12:06:05
#3

Pvz įkeli į public_html ten images aplankalą, ir adresas: www.saitas.lt/images/paveikslėl...
Čia gi paprasta. :)

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šė keistas· 2011 Bir. 24 14:06:21
#6

public_html ir yra subdomeno/domeno pavadinimas. www.pavadinimas.com/upload/dinoz...

Redagavo keistas· 2011 Bir. 24 14:06:35

Parašė switz· 2011 Bir. 24 14:06:03
#7

public html rasyti nereikia uztenka www.saitas.lt/upload/image.jpg

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:

ftp_mdtm();
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. 26 13:06:47
#30

Šitam: http://www.000webhost.com/

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