login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met uploadify en php (Opgelost)

Offline cowb - 11/03/2011 10:35
Avatar van cowbLid Hi all,

Ik ben bezig aan een nieuwe website en maar daarvoor gebruik van jQuery lib met de plugin uploadify ([url]http://www.uploadify.com/documentation/[/url]).
Nu wou ik dat gaan gebruiken voor een foto album. En bij elke upload een record toevoegen in een tabel 'fotos'.
Het opslaan werkt, maar mijn verwijzing naar het foto album doet het niet, deze is steeds 0 terwijl ik echt wel een waarde doorgeef.
Een beetje code maakt het geheel misschien wat duidelijker.

java.js
  1. $(document).ready(function() {
  2. $('#file_upload').uploadify({
  3. 'uploader' : '/upload/uploadify.swf',
  4. 'script' : '/upload/uploadify.php',
  5. 'cancelImg' : '/upload/cancel.png',
  6. 'folder' : '/afbeeldingen',
  7. 'auto' : true,
  8. 'multi' : true,
  9. 'removeCompleted' : false,
  10. 'queueID' : 'uploaded_files',
  11. 'scriptData' : {'id': '<?= $_GET["id"]; ?>'}
  12. });
  13. });


Uploadify.php
  1. <?php
  2. include("config.php");
  3. $id = $_REQUEST['id'];
  4.  
  5. if (!empty($_FILES)) {
  6. $tempFile = $_FILES['Filedata']['tmp_name'];
  7. $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
  8. $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  9.  
  10.  
  11. move_uploaded_file($tempFile,$targetFile);
  12.  
  13. $datum = time();
  14. $query_ = "INSERT INTO fotos (ID, album_ID, path, datum) VALUES ('', '".$id."', 'afbeeldingen/".$_FILES['Filedata']['name']."', '".$datum."')";
  15. mysql_query($query_) or die (mysql_error());
  16.  
  17.  
  18. echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
  19.  
  20. }
  21. ?>


7 antwoorden

Gesponsorde links
Offline ArieMedia - 11/03/2011 10:39
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
'scriptData' : {'id': '<?= $_GET["id"]; ?>'}

gaat niet werken in een javascript file.
+ shorttag wordt niet overal ondersteund  
Offline voltrex - 11/03/2011 10:41 (laatste wijziging 11/03/2011 10:42)
Avatar van voltrex Lid Je haalt een id op d.m.v. php in een javascript bestand. Dit gaat natuurlijk niet. (lijn 11, java.js)
Edit: ArieMedia was me voor. 
Offline cowb - 11/03/2011 11:05
Avatar van cowb Lid Hoe moet ik dit dan aanpakken?
Offline ArieMedia - 11/03/2011 14:12
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
  1. $(document).ready(function() {
  2. $('#file_upload').uploadify({
  3. 'uploader' : '/upload/uploadify.swf',
  4. 'script' : '/upload/uploadify.php',
  5. 'cancelImg' : '/upload/cancel.png',
  6. 'folder' : '/afbeeldingen',
  7. 'auto' : true,
  8. 'multi' : true,
  9. 'removeCompleted' : false,
  10. 'queueID' : 'uploaded_files',
  11. 'scriptData' : {'id': $('#album').val()}
  12. });
  13. });


  1. <select name="album" id="album">
  2. <option value="1">Kerstfoto's</option>
  3. <option value="2">Carnaval</option>


niet getest, maar probeer dit eens.
Offline cowb - 11/03/2011 15:57 (laatste wijziging 11/03/2011 16:01)
Avatar van cowb Lid Ik heb intussen nog wat zitten zoeken, en toen ben ik op volgende topic gestoten...
http://www.uplo...ng/#Item_2

Ik heb die methode toegepast, en ik wil dit nu testen door het opslaan in de db, maar dat lukt niet echt. Er wordt niks aan mijn db toegevoegd.

jQuery code:
  1. $(document).ready(function() {
  2. $('#file_upload').uploadify({
  3. 'uploader' : '/upload/uploadify.swf',
  4. 'script' : '/upload/uploadify.php',
  5. 'cancelImg' : '/upload/cancel.png',
  6. 'folder' : '/afbeeldingen',
  7. 'auto' : false,
  8. 'multi' : true,
  9. 'removeCompleted' : false,
  10. 'onComplete': function(event, queueID, fileObj, response, data){
  11. var form = document.forms['add_referentie'];
  12. var el = document.createElement("input");
  13. el.type = "hidden";
  14. el.name = "afbeelding["+i+"]";
  15. el.id = "ImageFile["+i+"]";
  16. el.value = fileObj.name;
  17. form.appendChild(el);
  18. i++;
  19. },
  20. 'queueID' : 'uploaded_files'
  21. });
  22.  
  23. });


Zoals in de topic vermeld zou deze bovenstaande code een hidden input plaatsen wanneer de upload complete is. Het zou er als volg moeten uitzien...

  1. <input id="ImageFile[1]" type="hidden" name="afbeelding[1]" value="file1.jpg">


PHP stukje bij post:
  1. $datum = time();
  2. $query = "INSERT INTO fotoalbum (ID, datum, uitvoering, locatie, beschrijving, titel) VALUES ('".$_GET['id']."', '".$datum."', '".$_POST['uitvoering']."', '".$_POST['locatie']."', '".$_POST['beschrijving']."', '".$_POST['titel']."')";
  3. mysql_query($query) or die (mysql_error());
  4.  
  5. $teller = 0;
  6. while(!empty($_POST['afbeelding['.$teller.']'])) {
  7. $query_ = "INSERT INTO fotos (ID, album_ID, path, datum) VALUES ('', '".mysql_insert_id()."', 'afbeeldingen/".$_POST['afbeelding['.$teller.']']."', '".$datum."')";
  8. mysql_query($query_) or die (mysql_error());
  9. $teller++;
  10. }
  11.  
  12. venster("info", "Gelukt", "De referentie is opgeslagen, U wordt dadelijk doorverwezen naar de uploadpagina!");


Bovenstaande code voert geen query uit in de tabel foto's. Dus dat wil zeggen dat mijn lus niet wordt uitgevoerd, en dat zal te weiten zijn aan het niet aanwezig zijn van de hidden inputs. Weet iemand hoe dat zou komen?

Offline voltrex - 11/03/2011 18:13 (laatste wijziging 11/03/2011 18:20)
Avatar van voltrex Lid Vergeet niet dat je bij bovenstaand voorbeeld bij afbeelding[0] moet beginnen en niet afbeelding[1]. Weet niet of je het in je script wel zo deed, maar zeg het omdat voorbeeld "name=afbeelding[1]" heeft.
Weet niet of dat iets met het probleem te maken heeft maar bemerkte dat even.  
Offline cowb - 11/03/2011 20:47 (laatste wijziging 17/03/2011 13:40)
Avatar van cowb Lid [EDIT] Het probleem is intussen opgelost. Na lang zoeken en proberen, ben ik op volgende oplossing uitgekomen.

Bovenstaande javascript code heb ik uit mijn java.js file gehaald en in mijn index.php pagina geplaatst. Daardoor kan ik mijn id meegeven via php, in plaats van via hidden input velden.

  1. 'scriptData': {'id': '<? echo $_GET['id']; ?>'}


Daarna hoefde ik enkel in het uploadify.php bestand een request doen naar id, zodat deze variabele beschikbaar was voor die pagina.

  1. <? $id = $_REQUEST['id']; ?>


Ik hoop dat dit min of meer duidelijk is.
Uploadify is een zeer handige en makkelijke plugin voor het uploaden van bestanden.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s