道德: 我正在使用AJAX在注册页面上传个人资料图片。
问题:当我上传图片时,它会自动更新数据库,而不需要页面请求,因此需要_iD(用户ID / uid)才能上传到数据库。因为访客没有可用的_iD 未注册,无法更新数据库。
寻找解决方案 *在按下提交按钮之前,如何在不需要更新我的数据库的情况下上传图片并预览它,因为AJAX需要自动更新我的数据库以提升带有_iD(用户ID)的文件。 我是否需要设置一个临时_iD,用于在请求提交表单后创建帐户?*
- > register.php
-----> http://pastebin.com/kZE4B105
- &GT * register_image_upload.php *
-----> http://pastebin.com/15n4pgPJ
- > 数据库表
-----> users
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| _iD | _iPassword | _iUsername | _iEmail | _iProfilePicture |
| 40 | bcrypt | _iUser | blah@gmail.com | $PATH |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
编辑:上传图片时表单上的当前错误。
Warning: move_uploaded_file(profile_pic/_iThumbnail/1369388350.jpg): failed to open stream: No such file or directory in C:\EasyPHP-12.1\www\public_html\register_image_upload.php on line 18
Warning: move_uploaded_file(): Unable to move 'C:\EasyPHP-12.1\tmp\php7EFB.tmp' to 'profile_pic/_iThumbnail/1369388350.jpg' in C:\EasyPHP-12.1\www\public_html\register_image_upload.php on line 18
failed
答案 0 :(得分:1)
我知道这是一个非常古老的问题,但可能对其他人有用..
您正在使用ajax,因此您可以按以下方式执行操作 -
成功上传后,通过ajax调用发送文件并获取图像文件名。
更改图像的src(显示位置)ajax调用所获得的内容。
您可以使用包含图像src的隐藏字段。
现在,当表单发布时,从该隐藏字段中获取数据。并按照您在数据库中的操作进行操作..
如果您有任何疑惑,请发表评论,以便我再次讨论。
答案 1 :(得分:0)
为什么不在上传实际发生之前在客户端进行预览? 见thisstack post
答案 2 :(得分:0)
您可以将图像存储在临时目录中,并将会话中的图像链接存储在该目录中。用户完成注册后,将图像移至永久存储并更新用户配置文件。