如何使用uploadify提交表单后上传文件?

时间:2011-10-09 02:07:31

标签: php javascript jquery file-upload uploadify

问题:

我有一个带有文本框,文件浏览(uploadify)和提交按钮的表单。我通过AJAX提交此表单。当我使用文件浏览器选择文件时,它会自动上传到针对文件夹选项定义的文件夹。提交表单后,我想将数据保存到数据库中。我可以在发布后获取其他字段数据但无法获取上传文件。在提交这样的表单之后,我想在$ _POST中添加一组上传的文件:

$_POST( 'fullname'=>'ABC', 'uploaded_files' => array( '/uploads/abc.doc', '/uploads/xyz.doc' ) );

怎么可能?


到目前为止我已执行以下操作。

jQuery的:

jQuery('.FileUpload').uploadify({
        'uploader'  : '/uploadify/uploadify.swf',
        'script'    : '/uploadify/uploadify.php',
        'cancelImg' : '/uploadify/cancel.png',
        'folder'    : '/uploads',
        'auto'      : true,
        'queueID'   : 'fileQueue',
        'removeCompleted':false
      }); 

HTML:

<form action='save.php' method='POST' enctype='multipart/form-data'>

Name: <input type='text' name='fullname' id='fullname'>

Source File: <input type='file' name='photos' id='photos' class='FileUpload'>
<div id="fileQueue"></div>

<input type='submit' name='submit' id='submit'>

</form>

2 个答案:

答案 0 :(得分:2)

使用javascript,您可以在表单中添加一些输入来跟踪上传的文件。例如,你可以把:

<input type='hidden' name='files[]' value="FILENAME1">
<input type='hidden' name='files[]' value="FILENAME2">
<input type='hidden' name='files[]' value="FILENAME3">

答案 1 :(得分:2)

请注意,uploadify有一个onComplete事件,可以从'script'参数返回数据。

因此,当uploadify关闭文件时,您可以让脚本返回文件存储位置的路径,然后根据onComplete事件中传回的内容在表单中检索/存储它。 (这将是onComplete回调的响应部分)

从那里,您可以填充随表单提交的隐藏表单字段(如AurelioDeRosa所示)并填充响应值。