Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] uploadify
Forum PHP.pl > Forum > XML, AJAX > AJAX
hondek
Witam!
uploadify nie uploaduje mi plikow, nie wiem dlaczego, oto moja konfiguracja:

w <head>
  1. <script type="text/javascript" src="js/jqueryuploadify/jquery-1.3.2.js"></script>
  2. <script type="text/javascript" src="js/jqueryuploadify/jquery.uploadify.js"></script>


dalej..

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $('#fileIn').fileUpload({
  4. 'uploader':'js/jqueryuploadify/uploader.swf',
  5. 'fileExt':'*.jpg;*.jpeg;*.JPG',
  6. 'script':'js/jqueryuploadify/upload.php',
  7. 'cancelImg':'js/jqueryuploadify/cancel.png',
  8. 'folder':'uploads',
  9. onError: function (a, b, c, d) {
  10. if (d.status == 404)
  11. alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
  12. else if (d.type === "HTTP")
  13. alert('error '+d.type+": "+d.status);
  14. else if (d.type ==="File Size")
  15. alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
  16. else
  17. alert('error '+d.type+": "+d.text);
  18. }
  19. });
  20. });
  21.  
  22. <input type="file" name="fileIn" id="fileIn" />
  23. <a href="javascript:$('#fileIn').fileUploadStart();">Upload Files</a>


I klikam Browse, dodaje fotke, laduje ja, klikam Upload Files, przez sekunde widac napis "Complete", ale nic sie nie pojawia w katalogu uploads :/ wie ktos gdzie robie blad?

UPDATE:
dodam jeszcze tylko, ze katalog uploads ma prawa zapisu (777)
erix
A masz wszystko w porządku po stronie serwera?
hondek
Zalezy co przez to rozumiec, jezeli chodzi o upload plikow to php normalnie mi uploaduje pliki...
Mam:
Apache 2.0,
PHP Version 5.2.6-2ubuntu4.2,
file_uploads On On,
upload_max_filesize 2M 2M,

tak wyglada plik upload.php
  1. <?php
  2.  
  3. // Uploadify v1.6.2
  4.  
  5. // Copyright (C) 2009 by Ronnie Garcia
  6.  
  7. // Co-developed by Travis Nickels
  8.  
  9. if (!empty($_FILES)) {
  10.  
  11.    $tempFile = $_FILES['Filedata']['tmp_name'];
  12.  
  13.    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_GET['folder'] . '/';
  14.  
  15.    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  16.  
  17.    
  18.  
  19.    // Uncomment the following line if you want to make the directory if it doesn't exist
  20.  
  21.    mkdir(str_replace('//','/',$targetPath), 0755, true);
  22.  
  23.    
  24.  
  25.    move_uploaded_file($tempFile,$targetFile);
  26.  
  27. }
  28.  
  29. echo "1";
  30.  
  31. ?>
erix
Na pewno? tongue.gif
  1. <?php
  2. $tempFile = $_FILES['Filedata']['tmp_name'];
  3. ?>

a w dokumentacji:
Cytat
The name of your files array in the upload server script.

$_FILES['Filedata'] jest tablicą plików, a nie jednym plikiem.
hondek
przeciez gdy uploadujemy plik :
  1. <input type="file" name="fileIn" id="fileIn" />


to potem odwolujemy sie do niego przez:
  1. <?php
  2. $_FILES['fileIn']['tmp_name']
  3. ?>


wiec w czym problem?
erix
W tym problem, że Uploadify tworzy tablicę w tym kluczu, gdyż umożliwia wysyłkę wielu plików naraz. ;]
hondek
ale przeciez w demo jest upload jednego pliku
Cytat
Single File Upload


Nie doczytalem nic w dokumentacji, ze trzeba cos modyfikowac przy uploadzie jednego pliku, powiedz mi prosze co mam zrobic zeby plik docieral na serwer :/
erix
Fakt, masz rację...

A demo Ci działa na tym serwerze?
hondek
Ciezko powiedziec winksmiley.jpg skrypt zachowuje sie tak samo jak u mnie, czyli : wybieram fotke, wypisuje mi ją pod buttonem "Browse" i gdy klikam Upload files znika... no ale nie wiem czy pojawia sie na serverze gdzie jest demo uploadify :/

a da sie jakos sprawdzic czy w ogole wykonuje sie plik upload.php ?
albo czy wykonuje sie move_uploaded_file ?

Juz wiem... to jednak wina servera, mianowicie:

echo $_SERVER['DOCUMENT_ROOT'] zwraca /var/www, a strona jest w /home/*/public_html ...

ale to chyba nie jedyny problem bo dziala jezeli upload.php wyglada tak :
  1. <?php
  2. if (!empty($_FILES)) {
  3.  
  4.    $tempFile = $_FILES['fileIn']['tmp_name'];
  5.  
  6.    //$targetPath = '/home/desktop/public_html/' . $_GET['folder'] . '/';
  7.  
  8.    $targetFile =  '/home/desktop/public_html/uploads/' . $_FILES['fileIn']['name'];
  9.  
  10.    
  11.  
  12.    // Uncomment the following line if you want to make the directory if it doesn't exist
  13.  
  14.    //mkdir(str_replace('//','/',$targetPath), 0755, true);
  15.  
  16.    
  17.  
  18.    move_uploaded_file($tempFile,$targetFile);
  19.  
  20. }
  21. ?>


a gdy jest
  1. <?php
  2. if (!empty($_FILES)) {
  3.  
  4.    $tempFile = $_FILES['Filedata']['tmp_name'];
  5.  
  6.    $targetPath = '/home/desktop/public_html/' . $_GET['folder'] . '/';
  7.  
  8.    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  9.  
  10.    
  11.  
  12.    // Uncomment the following line if you want to make the directory if it doesn't exist
  13.  
  14.    //mkdir(str_replace('//','/',$targetPath), 0755, true);
  15.  
  16.    
  17.  
  18.    move_uploaded_file($tempFile,$targetFile);
  19.  
  20. }
  21. ?>


to juz pliku nie zapisuje, jakby $_GET['folder'] nie docierala :/
erix
A dane z uploadify nie lecą przypadkiem przez POST?
hondek
nie, tak bylo domyslnie wiec mysle, ze nie. na wszelki wypadek sprawdzilem, ale nie dziala tez ;/
Da sie jakos zobaczyc co zawiera $_GET ? smile.gif
erix
A jak sprawdziłeś, czy coś zawiera POST? snitch.gif
hondek
Poprostu zmienilem $_GET na $_POST i nie dziala tez, ale wszedzie w samplach jest $_GET, wiec wydaje mi sie ze jest ok.

Strasznie dziwacznie sie zachowuje:

teraz mam tak :

  1. <?php
  2. if (!empty($_FILES)) {
  3.  
  4.    $tempFile = $_FILES['Filedata']['tmp_name'];
  5.  
  6.    $targetPath = '/home/desktop/public_html/uploads/'.$_GET['folder'];
  7.  
  8.    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  9.  
  10.    
  11.  
  12.    // Uncomment the following line if you want to make the directory if it doesn't exist
  13.  
  14.    mkdir(str_replace('//','/',$targetPath), 0755, true);
  15.  
  16.    
  17.  
  18.    move_uploaded_file($tempFile,$targetFile);
  19.  
  20. }
  21. ?>


wiec powinno mi utworzyc folder /home/desktop/public_html/uploads/uploads i tam umiescic plik?
a robi tak: w /home/desktop/public_html/uploads/ tworzy mi folder "~desktop" (questionmark.gif) do niego zapisuje plik i oprocz tego tworzy w /home/desktop/public_html/uploads/~desktop katalog upload... widzi ktos tutaj sens?
UPDATE:
sorry nie dalem "/" zamykajacego folder, ale bardzo mnie intryguje dlaczego tworzy katalog "~desktop" :/

zapisalem sobie w sesji $_GET['folder'] i okazuje sie ze zawiera /~desktop/uploads zamist "uploads" ale dlaczego?sad.gif
erix
GET? Dzisiaj też się tym bawie i w samplach jest:
  1. <?php
  2. $fileArray = array();
  3. foreach ($_POST as $key => $value) {
  4.    if ($key != 'folder') {
  5.        if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) {
  6.            $fileArray[$key] = $value;
  7.        }
  8.    }
  9. }
  10. ?>
hondek
kurcze, to pewnie kwestia konfiguracji, mi przekazuje w $_GET, bo przepisalem w upload.php $_GET do sesji i bylo "/~desktop/uploads" a $_POST nie dalo nic... lwestia tylko skad to ~desktop... "desktop" to nazwa uzytkownika na ktorym jestem zalogowany i na ktorym jest www :/
bliitz
Odświeżam temat bo też mam problem z uploadify. U mnie akurat pliki uploaduje jak na razie w porządku natomiast mam problem z podejrzeniem co jest przekazywane w $_FILES i $_POST.

Plik z dodawaniem pliku wygląda tak:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <link href="default.css" rel="stylesheet" type="text/css" />
  5. <link href="uploadify.css" rel="stylesheet" type="text/css" />
  6. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
  7. <script type="text/javascript" src="swfobject.js"></script>
  8. <script type="text/javascript" src="jquery.uploadify.v2.1.0.min.js"></script>
  9. </head>
  10. <body>
  11. <input type="file" name="up" id="up" />
  12. <a href="java script:$('#up').uploadifyUpload();">Upload Files</a>
  13.  
  14. <script type="text/javascript">
  15. $(document).ready( function() {
  16. $('#up').uploadify({
  17. 'uploader': 'uploadify.swf',
  18. 'script': 'uploadify.php',
  19. 'folder': 'uploadify',
  20. 'cancelImg': 'cancel.png',
  21. 'method': 'POST',
  22. 'buttonText': 'Wybierz plik'
  23. });
  24. });
  25. </script>
  26. </body>
  27. </html>


i uploadify.php

  1. if (!empty($_FILES)) {
  2. $tempFile = $_FILES['Filedata']['tmp_name'];
  3. $targetPath = '/var/www/kohana/media/galleries/107/';
  4. $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  5. print_r( $_POST );
  6. print_r( $_FILES );
  7. // $fileTypes = str_replace('*.','',$_REQUEST['fileext']);
  8. // $fileTypes = str_replace(';','|',$fileTypes);
  9. // $typesArray = split('\|',$fileTypes);
  10. // $fileParts = pathinfo($_FILES['Filedata']['name']);
  11.  
  12. // if (in_array($fileParts['extension'],$typesArray)) {
  13. // Uncomment the following line if you want to make the directory if it doesn't exist
  14. // mkdir(str_replace('//','/',$targetPath), 0755, true);
  15.  
  16. //move_uploaded_file($tempFile,$targetFile);
  17. //echo "1";
  18.  
  19. // } else {
  20. // echo 'Invalid file type.';
  21. // }
  22. }


Problem w tym, że mimo użycia print_r nic się nie wyświetla nawet napis Array().

W jaki sposób można podejrzeć te dane?
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.