1

Jquery Formプラグを使用して、画像をmysqlDBMSにアップロードしようとしています。これを行うには、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

私があなたの質問を正しく理解していれば、いわゆるデータURIを作成できます。

PHPでは非常に簡単です。

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

そして、これをajax応答の文字列として渡して、質問で概説したように直接入力します。

これがお役に立てば幸いです。私はjqueryformに精通していません。

于 2011-10-05T22:10:41.253 に答える