2012-08-17 67 views
1

我已经将pluploader添加到我的PHP页面并且Im成功上传。在同一页面上,我有一个表单,在人们上传了一些文件后,我在页面上提交。我希望上传者在表单末尾添加隐藏字段,并为每个上传的文件指定文件名。我设法得到这一半的脚本与此工作页面plupload在PHP中上传后获取文件名称

  uploader.bind('FileUploaded', function(up, file, info) { 
      var obj = JSON.parse(info.response); 
      $('form#quoteRequest').append('<input type="hidden" name="file_name" value="' + obj.cleanFileName + '" />'); 
     }); 

这似乎是增加隐藏字段的形式结束,但没有文件名上。也许有人知道这里发生了什么。我一直在砍和改变的东西,但似乎没有得到上传的文件名。我真的不知道自己在做什么,在学习PHP的早期阶段非常了解,这有点高于我的头,但我迫切需要一个好的跨平台上传器,这似乎是一个好主意。

非常感谢您的协助。 http://www.plupload.com/

+0

是plupload完成返回obj中上传后的文件名?做一个console.log(OBJ);找出答案。您可能需要更改plupload脚本以启用此功能。 – Waygood 2012-08-17 14:59:25

回答

7

在upload.php的最后一行需要读取如下

模具(“{ ”jsonrpc“: ”2.0“, ”结果“:{ ”cleanFileName“ 约plupload

信息: “'。$ fileName。'”},“id”:“id”}');

一旦完成,Plupload不会自动传回文件名。

+0

对不起,在我的例子中,你将不得不使用obj.result.cleanFileName – Waygood 2012-08-17 15:08:15

+2

讨厌...手动生成json。如果$ filename包含一个json-metachar? Boom去json。使用数组和json_encode并消除该问题。 – 2012-08-17 15:19:21

+1

这是对已有内容的改编。它的Pluploads代码,不是我的! – Waygood 2012-08-17 16:19:32

2

到文件名中结合上述功能比工作对我来说是

uploader.bind('FileUploaded', function(up, file, info) { 
    var obj = JSON.parse(info.response); 
    $('form#quoteRequest').append('<input type="hidden" name="file_name" value="' + obj.result.cleanFileName + '" />'); 
    //note obj.result.cleanFileName instead obj.cleanFileName 
});