1

我正在使用 Jquery Form 插件尝试将图片上传到我的 mysql DBMS。我使用 JqueryForm ajaxForm() 调用来执行此操作。它在我的服务器上调用一个 php 文件,该脚本将该文件放入数据库中。然后我尝试在同一个脚本中将该文件从数据库中取出。我想我如何做到这一点的具体细节是无关紧要的。我真的很想知道如何使用 jqueryForm 插件中的 AjaxForm 调用从 ajax 调用中获取图片。有没有人有一个如何使用该插件来做到这一点的例子?我有点失落...

<script type="text/javascript" src="jquery.form.js"></script>
<script>
    $(document).ready(function () {
        $('#profilepicbutton').live('change', function () {
            $("#preview").html('');
            $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
            $("#registerpt3").ajaxForm({
                target: '#preview',
                success: function (data) {
                    $("#preview").html('');
                    $("#preview").append("<img src=" + data + "></img>");
                }
            }).submit();
        });
    });
</script>    

现在,在 jquery 表单插件站点上,有一个页面特别包含文件上传说明...
http://jquery.malsup.com/form/#file-upload 他们给出的示例有点空白。 ..

<textarea> 
for (var i=0; i < 10; i++) { 
    // do some processing 
} 
</textarea>

现在,我该怎么办?为什么我要遍历某些数据结构?如果您查看该页面,您会发现他们的操作说明非常简短。有人有任何教程或建议吗?谢谢。

更新 PHP 代码

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{   
$name = $_FILES['profilepicinput']['name'];
$size = $_FILES['profilepicinput']['size'];
if(strlen($name))
{
    list($txt, $ext) = explode(".", $name);
    if(in_array($ext,$valid_formats))
    {
        if($size<(1024*1024)) // Image size max 1 MB
        {
            $actual_image_name = time().$session_id.".".$ext;
            $tmp = $_FILES['profilepicinput']['tmp_name'];
            $fp      = fopen($tmp, 'r');
            $data = fread($fp, filesize($tmp));
            $data = addslashes($data);
            fclose($fp);
             values('$email', '$tmp')");

            if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')"))
            {
                $query="select Pics, MAX(ID) from Personal_Photos where Email='$email'";
                $result=mysql_query($query) or die("Error: ".mysql_error());
                $row=mysql_fetch_array($result);
                $mime = 'image/yourtype';
                $base64 = base64_encode($contents);
                $uri = "data:$mime;base64,$base64";
                header("Content-type: image/jpg");
                print($row['Pics']);
            }
            else
            {
                die('Invalid query: ' . mysql_error());
                echo "failed";
            }
        }
        else
            echo "Image file size max 1 MB. Image Size:"+$size;
    }
    else
        echo "Invalid file format..";
}
else
    echo "Please select image..! Bull shit".$email;
exit;

}

4

1 回答 1

1

如果我正确理解您的问题,您可以创建一个所谓的data URI

在 PHP 中,这很简单:

$mime = 'image/yourtype';
$base64 = base64_encode($contents);
$uri = "data:$mime;base64,$base64";

并将其作为字符串传递给 ajax 响应,以便按照您在问题中概述的方式直接输入。

希望这会有所帮助,我不熟悉 jqueryform。

于 2011-10-05T22:10:41.253 回答