真的很困惑ajax图片上传

时间:2011-09-25 19:18:58

标签: php jquery image-upload

在过去的几周里,我就这个问题提出了几个问题。似乎我越努力想象这一点,我似乎离解决方案越远。这可能只是我作为一个白痴的功能

以下是我到目前为止所学到的内容的简要总结:

A)确实没有AJAX上传功能。您只是更新Ipage表单元素。它看起来像AJAX,但它确实不是。

B)val没有AjaxUpload插件。至少没有这个名字。看了几个关于ajax上传的教程,每个教程都引用了AjaxUpload.js插件并获得绝对的bubkis,因为在他的页面上,它没有被命名为AjaxUpload.js,它是其他名称。如果它甚至在那里。我不想经历重命名它的麻烦,只是看到发生了什么,因为这通常只会导致丑陋的意外错误。

C)很多解决方案似乎都使​​用了CAKE。不太确定到底是什么,但它看起来像某种基于流行的MVC设计模式的PHP设计模式。虽然不太确定。

D)这似乎是一项非常艰巨的任务。不是需要几行代码和祷告的东西   D1)PHP代码看起来很简单。只需调用移动文件的功能......   D2)jquery看起来有点棘手。这是你调用上面的php函数的地方。当我在上传的文本框内单击时,我想调用它...一个简单的

    $('form#inputId').change(function (){//insert the code to call php function here});

应该这样做吗?诀窍是我在那些大括号内写的?

这将是我对这个主题的理解总和......这就是我所拥有的......

    <?php
    $link = mysql_connect('greetmeet.ipagemysql.com', 'greetmeet', 'Maverick$41'); 
    mysql_select_db(first_1) or die("Opps, You are pretty Got-Damned Stupid!  Did you     realize that?!?!?");
    $target = './Uploads/'; 
    $target = $target . basename( $_FILES['uploaded']['name']) ; 
    $ok=1; 

    $path = "uploads/";
    $Email = $_SESSION['user_email']; //This should be a session ID.  Must talk this over with Fellow Coder That Nigga, LJeezy West...
    $valid_formats = array("jpg", "png", "gif", "bmp","jpeg");

    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
        $name = $_FILES['photoimg']['name'];
        $size = $_FILES['photoimg']['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['photoimg']['tmp_name'];
                    if(move_uploaded_file($tmp, $path.$actual_image_name))
                    {
                        mysql_query("UPDATE user_pics SET    profile_pic='$actual_image_name' WHERE Email='$Email'");
                        echo "<img src='uploads/".$actual_image_name."'         class='preview'>";
                    }
                    else
                        echo "failed";
                }
                else
                    echo "Image file size max 1 MB";
                }
            else
                echo "Invalid file format..";
            }
        else
            echo "Please select image..!";
        exit;
    }
    ?>

这就是我要调用的php函数,它会将文件移动到我的服务器然后将链接放在数据库中。

my Again,我的jquery代码非常混乱,可能都错了。我只是不知道该怎么做。我现在只想要一些非常简单的东西。没什么好看的,只需上传预览照片,然后提交最终确定一切。无论如何我可以通过将图片直接放在mysql btw中来做到这一点吗?

另外, 本教程似乎很有用...... http://www.akchauhan.com/upload-image-using-hidden-iframe/ 但真的很难理解......

这是一个使用AjaxUpload的插件的例子...... AjaxUpload.js文件在哪里? http://www.zurb.com/playground/ajax_upload

2 个答案:

答案 0 :(得分:1)

我建议使用插件“ajaxfileupload.js”。 这很容易使用。 请查看以下链接以获取其说明并下载: http://www.phpletter.com/Our-Projects/AjaxFileUpload/

注意:这不使用任何闪光灯。这是它的好方面。

答案 1 :(得分:0)

在你提到的tutorial中,你可能会迷失在链接中,因为使用的组件已停止维护。无论如何,你找到了项目here。您想要的是项目根文件夹中的文件ajaxupload.js