我所拥有的是一个包含姓名、地址等详细信息的表格......以及另一个单独的上传个人资料图片表格。我想在提交“父”(单独)表单时获取该(可选)上传的图片。
现在他们的工作方式是这样的:
上传的图片被发送.ajaxSubmit()
到 process_uploaded_image.php。然后对其进行处理、调整大小,并在“转储/临时”文件夹中制作新图片。我可以将它返回,以可以回success: function(data)
显的数据形式$image_path_and_name
或作为<img src="$image_path_and_name"/>
. 我是这样做的 - 有一个临时图像 - 因为
(1)我想让用户查看他刚刚上传的内容(记住我已经将它返回到 jquery 的路径或 img 元素,我可以将它放在我想要的任何地方), 和
(2) 上传的图片不是最终的,直到“父”表单完成注册。毕竟它仍然是一个临时图像。
所以,问题是:我想访问该上传的图像,并在提交时将其与“父”表单一起“带上” ......我该如何准确地做到这一点?从技术上讲,它不是父表单,因为我知道表单中的表单是不允许的。但它在逻辑上被捆绑并在该父形式下。我会感谢任何帮助,但如果可能的话,如果你能考虑我目前的情况,我会更加感激,这样我就不必从头开始了。再次感谢。
我的想法:(请让我知道这是多么可行……和/或关于我如何做 #1 的指南)$image_path_and_name
1.“重建”或从ajax-jquery返回的字符串
(数据)复制该文件,或<img src="$image_path_and_name"/>
将其放在最终上传文件夹中。<---这就是我难过的地方!我不能只使用move_uploaded_file()
,可以吗?
2. 因为,从这一点开始一切都是最终的......我可以将其文件路径以及其他表单信息保存到我的数据库中。
3. 清空转储/临时文件夹。
问问题
1063 次
3 回答
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);
}
于 2012-11-06T06:24:58.757 回答
1
如果您有文件位置并且在用户验证并确认图像后,您可以使用复制功能从临时文件夹复制到主文件夹。所以它会像
1) copy($file, $newfile)
2) 更新关于新路径的数据库。
3)从旧路径中取消链接文件。
unlink($file);
于 2012-11-06T07:02:01.647 回答
1
制作两个文件夹,一个作为临时文件夹,另一个作为最终文件夹.......上传图片后,将文件名放入主窗体中的隐藏字段......然后在发送数据库中的数据时移动图像到最终文件夹和名称(来自隐藏字段)到数据库中..
于 2012-11-06T06:56:15.870 回答