上传图像表格和另一个填写表格

时间:2012-11-06 06:15:55

标签: php jquery ajax forms file-upload

我所拥有的是一个包含名称,地址等详细信息的表单以及另一个单独的上传个人资料图片表单。我希望在提交“父”(单独)表单时获取(可选)上传的图片。
现在他们这样工作:
上传的pic通过.ajaxSubmit()发送到process_uploaded_image.php。然后它被处理,调整大小,并在“dump / temp”文件夹中创建新图片。我可以在success: function(data)中以数据的形式将其返回,该数据可以是回显的$image_path_and_name<img src="$image_path_and_name"/>。我这样做了 - 有一个临时图像 - 因为
(1)我想让用户查看他刚刚上传的内容(记得我已经将它返回路径或img元素到jquery我可以放置它在我想要的任何地方),以及(2)上传的图像不是最终的,直到“父”表格完成注册。毕竟它仍然是一个临时的形象。

所以,问题是我想要访问上传的图片,并在提交时“带”与“父”表单一起“ ...我怎么能那样做到底?从技术上讲,它不是父表格,因为我知道表格中的表格是不允许的。但它在逻辑上与父母形式捆绑在一起。我会感谢任何帮助,但如果可能的话,如果你能考虑我现在的情况,我会更加感激,所以我不必再从头开始。再次感谢。

我的想法:(请让我知道这是多么可行......和/或我如何做的准则#1)
1.“重建”或复制来自ajax-jquery的文件({1}}字符串或$image_path_and_name返回(数据),将其放在最终上传文件夹中。&lt; ---这就是我在哪里'M STUMPED!我不能只使用<img src="$image_path_and_name"/>,我可以吗? 2.从这一点开始,一切都是最后的......我可以将其文件路径保存到我的数据库,以及其他表格信息 3.清空dump / temp文件夹。

3 个答案:

答案 0 :(得分:2)

我的解决方案是使用iframe进行上传,并在iframe的返回页面中使用这样的JavaScript

echo("<script type=\"text/javascript\">parent.insert('". $WHAT_YOU_WANT . "');</script>");

并且在父页面中定义了函数insert,并且可以将字符串插入到您想要的位置。 obj_ta是目标文本字段,或其他内容。

//A simple input
function insert(str) {
    obj_ta.value = str;
}

//A textfield which accept some other user inputs
function insert(str) {
var startPos = obj_ta.selectionStart,
    val = obj_ta.value;
obj_ta.value = val.substring(0, startPos) + str + val.substring(startPos, obj_ta.value.length);
}

答案 1 :(得分:1)

将两个文件夹设为临时和其他最终.......并在上传图像后将文件名放入主窗体中的隐藏字段........然后在发送数据时数据库将图像移动到最终文件夹并将名称(从隐藏字段)移动到数据库中..

答案 2 :(得分:1)

如果您有文件位置,并且在用户验证并确认图像后,您可以使用copy功能从临时文件夹复制到主文件夹。这就像

1) copy($file, $newfile)

2)更新有关新路径的数据库。

3)取消文件与旧路径的链接。

unlink($file);

有关Unlinking a file

的更多信息