0

道德: 我正在使用 AJAX 在注册页面上上传个人资料图片。

问题:当我上传图像时,它会自动更新数据库而不需要页面请求,因此它需要一个 _iD(用户 id/uid)来上传到数据库。由于访问者未注册,因此没有可用的 _iD,因此无法更新数据库。

寻找解决方案: *我将如何完成上传图片并预览它而无需在按下提交按钮之前更新我的数据库,因为 AJAX 需要自动更新我的数据库以使用 _iD(用户 id)上传文件。我是否需要设置一个临时 _iD,用于在请求提交表单后创建帐户?*

-->注册.php

-----> http://pastebin.com/kZE4B105

-->*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
4

3 回答 3

1

我知道这是一个非常古老的问题,但可能对其他人有用..

您正在使用 ajax ,因此您可以按照以下方式进行操作-

  • 上传成功后通过ajax调用发送文件并获取图片文件名。

  • 更改通过 ajax 调用获得的图像的 src(显示位置)。

  • 您可以使用一个隐藏字段,其中包含图像的 src。

  • 现在,当表单发布时,从该隐藏字段中获取数据。并像在数据库中一样进行操作。

如果你有任何困惑,请评论,所以我会回到讨论。

于 2015-08-24T09:34:50.230 回答
0
于 2013-05-24T09:40:07.737 回答
0

您可以将图像存储在临时目录中,并在会话中存储指向该图像的链接。当用户完成注册时,将图像移动到永久存储并更新用户配置文件。

于 2013-05-24T09:46:40.857 回答