使用Uploadify返回文件名的问题

时间:2010-09-05 06:15:18

标签: php jquery

我使用Uploadify插件上传图片,我正在做一些像

这样的操作

a)当用户上传文件时,会自动删除上传按钮 b)uploadify.php脚本将重命名该文件并将其存储在指定目录中。

这是我用来执行操作的代码。

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>

并且在php中我使用了date与唯一id的组合来重命名文件,这完全正常工作。

但是当我想查看文件名时,我通过调用div

来实现
<div id="filesUploaded"></div>

它显示原始文件名而不是重命名的文件。我尝试更改'+fileObj.name+' to '+response+'

的值

我猜问题是在上面的代码中,因为file.Obj.name打印选定的文件名而不是处理过的文件,当我将其更改为+ response +时,它上传文件并重命名,但在表单页面中它不会打印重命名的文件名。并且进度条组成了100%的进度,它冻结了。

如何让它打印重命名的文件名。?

谢谢

编辑:这是我的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);
}
?>

2 个答案:

答案 0 :(得分:4)

对我来说这没用。我正在寻找类似的东西 - 这对我有用:

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

在我的情况下,我使用uploadify.php创建一个唯一的文件名 - 然后我使用echo $ filename - 而不是'1'。这样“数据”总是包含最新的文件名。 干杯

答案 1 :(得分:1)

这是问题所在。 Javascript代码有拼写错误。您已在reposnse来电中写了response而不是onComplete。这样做:

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

然后当您执行+response+时,脚本将不会挂起并显示MaxID(您从PHP脚本中输出)。