2010-09-05 7 views
0

J'utilise le plugin Uploadify pour télécharger l'image, et je suis en train de faire certaines opérations telles queau retour du nom de fichier en utilisant Uploadify

a) lorsqu'un utilisateur télécharger le fichier sur le bouton de téléchargement est automatiquement supprimé b) et le script uploadify.php va renommer le fichier et le stocker dans le répertoire désigné.

et voici le code que j'utilise pour effectuer l'action.

code Jquery:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#fileUpload, #fileUpload2').uploadify({ 
     'uploader': 'img/uploadify.swf', 
     'script': 'uploadify.php', 
     'folder': 'upload', 
     'auto' : 'true', 
     'cancelImg': 'img/cancel.png', 
     'fileDesc': 'jpg/jpeg', 
     'displayData': 'percentage', 
     'fileExt': "*.jpg;*.jpeg", 
     'sizeLimit' : '8388608', 
     'fileDataName' : 'file', 
     onComplete : function(event, queueID, fileObj, reposnse, data) 
     { 
    $('#filesUploaded').append('<a href='+fileObj.filePath+'>'+fileObj.name+'</a><br>'); 
    $("#firstUpload").remove(); 
     } 
     }); }); 
     </script> 

et dans le php j'ai utilisé la combinaison de rendez-vous avec un identifiant unique pour renommer le fichier qui fonctionne parfaitement bien.

mais quand je veux voir le nom du fichier et je le fais en appelant la div

<div id="filesUploaded"></div> 

il montre le nom du fichier d'origine et non le fichier renommé. J'ai essayé de changer la valeur de '+fileObj.name+' to '+response+'

Je suppose que le problème est dans le code ci-dessus que le fichier.Obj.name imprime le nom de fichier sélectionné et non le fichier traité, et quand je le change en + réponse + il télécharge le fichier et le renommer mais dans la page de formulaire il n'imprime pas le nom de fichier renommé. et il se fige avec la barre de progression composant le progrès de 100%.

comment puis-je lui faire imprimer le nom de fichier renommé.?

merci

Edit: voici mon code PHP.

<?php 
include('database.php'); 
$date = date("dFY"); 
$query = "SELECT MAX(id) as max_id FROM news"; 
$result = mysql_query($query); 
$row = mysql_fetch_array($result); 
$max_id = $row['max_id']+1; 
echo $max_id; 
$file1 = "file_$date"."_$max_id.jpg"; 
if (!empty($_FILES)) { 
    $tempFile = $_FILES['file']['tmp_name']; 
    $targetPath = 'upload/'; 
move_uploaded_file($tempFile,$targetPath.$file1); 
} 
?> 
+0

non, vous avez tort, vous pouvez consulter cet article http://www.uploadify.com/forum/viewtopic.php?f=7&t=58 et dans la documentation aussi, il est dit que je dois utiliser la réponse: Les données renvoyées par le serveur. il doit y avoir une solution pour cela. –

+0

Quel est votre code PHP? – BoltClock

+0

@BoltCock J'ai édité mon post. –

Répondre

1

est ici le problème. Le code Javascript a une faute de frappe. Vous avez écrit reposnse au lieu de response dans onComplete appel. Faites comme ceci:

onComplete : function(event, queueID, fileObj, response, data) 

Puis, quand vous faites le +response+, le script ne se bloque pas et affiche le maxid (qui vous outputing à partir du script PHP).

4

Pour moi, cela n'a pas fonctionné. Je cherchais quelque chose de similaire - c'est ce qui a fonctionné pour moi:

'onUploadSuccess' : function(file, data, response) { 
    alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data); 
} 

Dans mon cas, je me uploadify.php pour créer un nom de fichier unique - j'utilisé echo $ filename - plutôt que « 1 ». De cette façon, "data" contient toujours le nom de fichier le plus récent. Salutations

Questions connexes