-1

我想制作一个注册表单,用户应该能够在其中上传个人资料图片以及注册表单。我正在像这样使用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 插入它。我不知道该怎么做。我的第二个问题是,如果用户在注册表单中多次更改他的图片,我将如何删除他之前上传的所有内容?

4

2 回答 2

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');
于 2012-07-16T18:50:20.027 回答
1

好的,这就是我所做的,我相信这可以帮助你:

1)生成时间戳+随机数>幻数

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

3)以幻数作为名称保存该文件(您可以上传任意数量的文件,而不是前一个文件)

4) 将生成的数字连同表单的其余部分与用户数据一起发布

选择一个数字 5):

5a) 保存数据时,只需将临时文件重命名为带有来自 mysql 的新 ID 的最终文件夹

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

希望这可以帮助!

于 2012-07-16T19:03:04.187 回答