真的很困惑的ajax图像上传


Really Confused about ajax image upload

在过去的几个星期里,我问了几个关于这个主题的问题。似乎我越努力想弄清楚这个问题,我离解决方案就越远。这可能只是因为我是个白痴

以下是我所学内容的简要总结:

A)真的没有AJAX上传功能。您实际上只是在更新一个page表单元素。它看起来像AJAX,但实际上不是。

B)没有AjaxUpload插件的值。至少没有提到这个。在看了ajax上传的几个教程后,每个教程都提到了AjaxUpload.js插件,并且得到了绝对的bubkis,因为在他的页面上,它没有被命名为AjaxUpload.js,它的名字是别的东西。如果它真的存在的话。我不想经历重命名的麻烦,只是看看会发生什么,因为这通常只会导致丑陋的错误。

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

D)这似乎是一项非常艰巨的任务。这不是需要几行代码和祈祷的事情。
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函数它会把文件移到服务器上然后把链接放到数据库中

再一次,我的jquery代码非常混乱,可能都是错误的。我只是不知道该怎么做。我现在只想要简单的东西。没什么特别的,只要上传照片和预览,然后提交完成一切。无论如何,我可以做到这一点,把图片直接在mysql btw?

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

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

我建议使用插件"ajaxfileupload.js"。这很容易使用。请点击下面的链接获取说明和下载:http://www.phpletter.com/Our-Projects/AjaxFileUpload/

注意:这是不使用任何flash。这是它好的一面。

在您提到的教程中,您可能会迷失在链接中,因为所使用的组件停止了维护。总之,你可以在这里找到项目。你需要的是项目根目录下的ajaxupload.js文件