Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX]uploadify i kasowanie plików kilka błędów
Forum PHP.pl > Forum > Przedszkole
lobopol
W jaki sposób połączyć te dwa skrypty aby działały poprawnie, aktualnie kasowanie działa, wgrywanie plików również, ale jeżeli wgram plik, a następnie chcę skasować jakiś to niestety nie mogę, jeżeli najpierw skasuje plik to mogę wgrać nowy, ale niestety po wgraniu znowu nie mogę kasować:

plik skryptu
  1. jQuery(document).ready(function() {
  2. $('#mainftp').uploadify({
  3. 'uploader' : 'js/uploadify/uploadify.swf',
  4. 'script' : 'js/uploadify/uploadify.php',
  5. 'multi' : true,
  6. 'auto' : true,
  7. 'height' : '30',
  8. 'width' : '250',
  9. //'sizeLimit' : '51200', //limit wielkości plików
  10. 'simUploadLimit' : '3',
  11. 'buttonImg' : 'img/button.png',
  12. 'cancelImg' : 'img/cancel.png',
  13. 'fileDesc' : 'jpg/jpeg/doc',
  14. 'fileExt': '*.jpg;*.jpeg;*.png;*.docx;' ,
  15. 'folder' : 'files',
  16. onProgress: function() {
  17. $('#loader').show();
  18. },
  19. onAllComplete: function() {
  20. $('#loader').hide();
  21. $('#allfiles').load(location.href+" #allfiles>*","");
  22. }
  23. });
  24.  
  25. $('ul li:odd').addClass('odd');
  26.  
  27. });
  28.  
  29. $(function() {
  30. $(".delete").click(function() {
  31. var commentContainer = $(this).parent();
  32. var id = $(this).attr("id");
  33. var string = 'id='+ id ;
  34.  
  35. $.ajax({
  36. type: "POST",
  37. url: "delete.php",
  38. data: string,
  39. cache: false,
  40. success: function(){
  41. commentContainer.slideUp('slow', function() {$(this).remove();});
  42. }
  43. });
  44. return false;
  45. });
  46. });


nospor
czyzby chodzilo o to:
$(".delete").click(function() {
nowo dodane pliki nie mają przypisanej klasy .delete albo nie mają przypianego zdarzenia, gdyz dopiero co sie dodaly. Jeslit to drugie to zaineteresuj sie funkcją LIVE w jquery
lobopol
tak wygląda link przed jakąkolwiek akcją na stronie:
  1. <a href="files3/Wyko.png">Wyko.png</a> <a href="#" id="files3/Wyko.png" class="delete">usuń</a>

Tak po dodaniu
  1. <a href="files3/google.png">google.png</a> <a href="#" id="files3/google.png" class="delete">usuń</a>

Nie znam się zbytnio na jquery i sprawia mi to niestety spory problem

Kwestia jest taka, że po wgraniu pliku nie jest możliwe usunięcie żadnego pliku (ani nowego, ani tych co były) do odświeżenia strony.
nospor
no to sprobuj z LIVE jak ci pisalem
http://api.jquery.com/live/
lobopol
Próbuje, ale niezbyt mi to wychodzi, jak już wspominałem jquery nie jest moją mocną stroną.
erix
Pokaż, jak próbujesz.
lobopol
Ech kolejna sprawa


  1. <?php
  2. if($_SESSION['lvl'] == 2 || $_SESSION['lvl'] == 4){
  3. if (!empty($_FILES)) {
  4. require_once '../../../class/Database.php';
  5. require_once '../../../cfg.php';
  6. if($_SESSION['lvl'] == 4){
  7. $targetPath = "../../../files/mainPage/";
  8. }
  9. else{
  10. $db = new Database($dbLogin, $dbPassword, $dbHost, $dbName);
  11. $query = sprintf("SELECT folder FROM users WHERE user_id = '%s' LIMIT 1;",
  12. mysql_real_escape_string($_SESSION['id']));
  13. $targetPath = $db->select($query);
  14. $targetPath = "../../../".$targetPath[0]['folder']."/";
  15. }
  16.  
  17. $tempFile = $_FILES['Filedata']['tmp_name'];
  18. $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  19. $fileTypes = str_replace('*.','',$_REQUEST['fileext']);
  20. $fileTypes = str_replace(';','|',$fileTypes);
  21. $typesArray = split('\|',$fileTypes);
  22. $fileParts = pathinfo($_FILES['Filedata']['name']);
  23.  
  24. if (in_array($fileParts['extension'],$typesArray)) {
  25. move_uploaded_file($tempFile,$targetFile);
  26. // mkdir(str_replace('//','/',$targetPath), 0755, true);
  27. echo "1";
  28.  
  29. } else {
  30. echo "Niedozwolony format pliku";
  31. }
  32. }
  33. }
  34. ?>


Sytuacja wygląda tak na stronie głównej przy logowaniu ustawiam $_SESSION['id'] (identyfikuje się w nim id użytkownika w bazie), $_SESSION['lvl'] itd. Jeżeli zostawiam tak jak jest teraz to niestety plik nie jest wgrywany na serwer (nie mam pojęcia dlaczego), jeżeli pozbędę się sesji w tym pliku i ustawie $targetPath na sztywno wszystko działa. Co zrobić aby wgrywać pliki tylko i wyłącznie do folderu użytkownika aktualnie zalogowanego oczywiście w miarę bezpiecznie (filtrowania typów danych jeszcze nie zrobiłem)? Problem poprzedni na razie zostawiam bo muszę jeszcze nieco poczytać, a ten jest nieco bardziej naglący.

Ps. Kwestia pierwszego problemu rozwiązana jednak nie było to takie trudne.


Ps2. Problem udało się rozwiązać przesyłając id sesji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.