Merhabalar,
FTP ' de script diye bir klasör var diyelim. Webden bir forma bir dizin adı yazıyoruz, tamam'a bastıktan sonra o dizini oluşturuyor ve script klaösründeki dosyaları onun içine kopyalıyor.
Bu tarz birşeyi nasıl yapabiliriz?
PHP ' de Kopyalama
4
●857
- 20-11-2010, 18:46:56
<?php if(isset($_POST['gonder'])){ $klasor_adi = $_POST['klasor']; if(file_exists($klasor_adi)) { echo "Klasör zaten var!"; exit();//İşlemi durdur } $olustur = mkdir($klasor_adi, 0755); if($olustur) { echo "Klasör oluşturuldu."; $dizin_adi = "/alinacak_klasor/"; $dizin = opendir($dizin_adi); while(gettype($ad=readdir($dizin))!=boolean) { $kaynak = $dizin_adi."/".$ad; $hedef = $klasor_adi."/".$ad; if (!copy($kaynak, $hedef)) { echo "failed to copy $file...\n"; }else{ echo $hedef." dosyası basariyla kopyalandi.<br>"; } } closedir($dizin); } else { echo "Klasör oluşturulamadı!"; } }else{ ?> <form action="#" method="POST"> dosya ismi:<input type="text" name="klasor"><br> <input type="submit" name="gonder"> </form> <?php } ?>denemeden direk yazdım buraya.
muhtemelen çalışır.
çalışmazsa
$olustur = mkdir($klasor_adi, 0777);
yaparak tekrar dene.
bu arada bu klasör oluşturma işleminin gerçekleştiği üst klasörün CHMOD 0777 olması lazım - 20-11-2010, 19:04:39Üyeliği durdurulduKlasör oluşturuldu.digiklan adlı üyeden alıntı: mesajı görüntüle
Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 1870 is not allowed to access / owned by uid 0 in /home/linem/public_html/asda.php on line 19
Warning: opendir(/gmp/) [function.opendir]: failed to open dir: No such file or directory in /home/linem/public_html/asda.php on line 19
Warning: readdir(): supplied argument is not a valid Directory resource in /home/linem/public_html/asda.php on line 21
Warning: closedir(): supplied argument is not a valid Directory resource in /home/linem/public_html/asda.php on line 34
Klasörü oluşturuyor fakat böyle bir hata veriyor. - 20-11-2010, 19:09:43Safe Mod güvenlik ayarları yüzünden script içinde dosya işlemi yapmanız kısıtlanmış. makedir çalışıyor ama opendir readdir fonksiyonları kısıtlanmış.
dosya sayısı fazla değilse opendir readdir kullanmadan
her dosya için tek tek elle copy komutu yazarak deneyin.
if (!copy("/kaynak_klasor/kaynak_dosya1.jpg", "/hedef_klasor/hedef_dosya1.jpg")) { echo "kopyalama basarisiz"; }else{ echo "dosya basariyla kopyalandi.<br>"; } if (!copy("/kaynak_klasor/kaynak_dosya2.jpg", "/hedef_klasor/hedef_dosya2.jpg")) { echo "kopyalama basarisiz"; }else{ echo "dosya basariyla kopyalandi.<br>"; } - 20-11-2010, 19:48:53Üyeliği durdurulduMaalesef dosya çok var. Böyle yapamam. Başka bir yolu yokmu ? Sunucu benim değil fonksiyonlarıda açamamdigiklan adlı üyeden alıntı: mesajı görüntüle