将上传图片与注册相结合

时间:2012-07-16 18:32:13

标签: php jquery ajax

我想制作一个注册表单,用户应该可以在其中上传个人资料图片和注册表单。我正在使用像这样的ajax上传图片

 $(document).ready(function () {
     $('#UploadForm').on('submit', function (e) {
         e.preventDefault();
         $('#SubmitButton').attr('disabled', ''); // disable upload button
         //show uploading message
         $("#profile_picture").html('<div class ="update_load" style="padding:10px"><img class="load_pic" src="images/ajax-loader.gif" alt="Please Wait"/> </div>');
         $(this).ajaxSubmit({
             target: '#profile_picture',
             success: afterSuccess //call function after success
         });
     });
 });

来自ajax的反馈是这样的图片

echo '<img class="profile" src="uploads/'.$name.'.'.$ext.'" >';

现在我想将另一个process.php文件中的$ name变量传递给我当前的index.php文件,以便我可以使用MySQL Query插入它。我不知道该怎么做。我的第二个问题是,如果用户在注册表单中多次更改其图片,我将如何删除他之前上传的所有内容?

2 个答案:

答案 0 :(得分:1)

您可以编写以响应为参数的afterSuccess函数。

$(this).ajaxSubmit({
             target: '#profile_picture',
             success: afterSuccess(data) //call function after success
         });

function afterSuccess(data)
{
    //parse your response to take the name
    //make another ajax request to save it to database
}

此功能也可以处理新图片上传。 你将在php级别(ajax调用)

进行检查

解析img字符串以获取src:

var img = $('<img class="profile" src="uploads/gaidouri.jpg" />');
var src = $(img).attr('src');

答案 1 :(得分:1)

好吧,这就是我的工作,我相信这可以帮到你:

1)生成时间戳+ randon数&gt; 幻数

2)使用uploadify jquery插件将照片上传到临时文件夹(您可以从用户完成个人数据的同一表格上传照片

3)使用幻数作为名称保存该文件(您可以根据需要上传前一个来上传

4)使用用户数据

将生成的数字与表单的其余部分一起发布

选择一个数字5):

5a)保存数据时,只需将临时文件重命名为mysql中新id的最终文件夹

5b)保留临时文件,只需将其移动到最终文件夹并使用幻数将其存储在数据库中

希望这有帮助!