我正在使用Uploadify作为表单的一部分。让我给你一些背景,它可能有所帮助。我有一个表单,用户可以在其中添加“项目”到网站。首先,他们输入项目名称和描述。在提交时,这将更新名为“project”的PHP / MySQL数据库表,并为其提供ID。
然后,用户可以将文件上载到服务器上的某个位置。我希望在上传开始之前将项目名称添加到上传文件名的开头和项目ID(我需要添加到数据库中),然后在上传完成时将文件详细信息添加到数据库表“image” - 通过项目ID链接到“项目”。
我知道我有点来回蹦蹦跳跳,我需要知道如何做到这一点。要更新的两个数据库表,一个在表单提交上,另一个在文件上载中。我需要将项目名称和ID传递给uploadify上传脚本。
SOLUTION:
我必须使用以下uploadify方法将项目ID发送到uploadify脚本,之前已使用pid
结果填充变量mysql_insert_id
:
'onSelectOnce': function(event,data) {
$('#file_upload').uploadifySettings('scriptData', {'pid': pid});
}
然后我可以使用一个简单的帖子在PHP uploadify脚本中接收pid变量:
$pid = $_POST['pid'];
然后在此脚本中运行select以获取数据库所需的数据(项目别名)并在上传之前将其添加到文件名中:
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/' . $alias . '-';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
希望这将有助于未来的人们。
答案 0 :(得分:3)
我不得不使用下面的uploadify方法将项目ID发送到uploadify脚本,之前填充了带有mysql_insert_id结果的变量pid:
'onSelectOnce': function(event,data) {
$('#file_upload').uploadifySettings('scriptData', {'pid': pid});
}
然后我可以使用一个简单的帖子在PHP uploadify脚本中接收pid变量:
$pid = $_POST['pid'];
然后在此脚本中运行select以获取数据库所需的数据(项目别名)并在上传之前将其添加到文件名中:
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/' . $alias . '-';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
希望这将有助于未来的人们。
答案 1 :(得分:1)
在uploadify脚本中,有一部分提供了上载表单处理文件的语法。我手边没有脚本,但是在完成回调和完整回叫功能之前需要进行升级。
使用之前的完成并将名称附加到ajax请求,该请求将其保存到您的数据库,从那里只执行2个查询,上传图像的名称并将user_id设置为可能来自ur session的用户ID
var = file_before_upload_name: filename // here use the sytax that Uploadify uses to capture the name of the file
var = file_after_upload_name: filename // here use the sytax that Uploadify uses to capture the name of the file
然后在aftercomplete回调上使用ajax请求并设置
uid:uid //来自会话 之前:file_before_upload_name, after:file_after_upload_name
在ajax中你的查询看起来像
mysql_queries("INSERT INTO `tbl-projects` SET `user_id` = {$_POST['uid']}, `file` = {$_POST['after']}");
//another query here to set the data to your other table that relates to tbl-projects
答案 2 :(得分:1)