我所拥有的是一个包含名称,地址等详细信息的表单以及另一个单独的上传个人资料图片表单。我希望在提交“父”(单独)表单时获取(可选)上传的图片。
现在他们这样工作:
上传的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文件夹。
答案 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);
的更多信息