Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][AJAX]uploadify i kasowanie plików kilka błędów
lobopol
post
Post #1





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


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. });


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
lobopol
post
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to sprobuj z LIVE jak ci pisalem
http://api.jquery.com/live/
Go to the top of the page
+Quote Post
lobopol
post
Post #5





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Próbuje, ale niezbyt mi to wychodzi, jak już wspominałem jquery nie jest moją mocną stroną.
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż, jak próbujesz.
Go to the top of the page
+Quote Post
lobopol
post
Post #7





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


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.

Ten post edytował lobopol 11.03.2010, 20:50:34
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:52