0

IEのようなものでもそれを解決するには?:

$(document).ready(function() {
    //i want to hide the <input type="file"...>

およびファイルエクスプローラーを開く幅は画像をクリックしています

    $("#preview").html('<img src="uploads/default.png" class="preview" />').click(function() {
        $('#imgfile').click();
    });

firefox、ghrome、safari、opera では問題ありません

    $('#imgfile').bind('change', function() {
        $("#preview").html('');
        $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');

...しかし、Internet Explorer では、ajaxForm 関数が機能せず、読み込み中の画像が表示されたままになります。

        $("#imageform").ajaxForm({
            target: '#preview'
        }).submit();
    });
    $("#imgfile").hide();
});

そしてhtmlコードがあります:

<div style="width:600px">
    <form id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'>
        <input type="file" name="imgfile" id="imgfile" />
    </form>
    <div id='preview'></div>
</div>

およびCSSコード:

.preview {
    width:100px;
    height:100px;
    border:solid 1px #dedede;
    padding:0px;
    margin:0px;
    color:#cc0000;
    font-size:12px
}

..そして ajaimage.php は次のようになります:

<?php
$path = "uploads/";
$valid_formats = array("jpg", "png", "gif", "bmp");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
    $name = $_FILES['imgfile']['name'];
    $size = $_FILES['imgfile']['size'];
    if(strlen($name)) {
        list($txt, $ext) = explode(".", $name);
        if(in_array($ext,$valid_formats)) {
            if($size<(1024*1024)) {
                $actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
                $tmp = $_FILES['imgfile']['tmp_name'];
                if(move_uploaded_file($tmp, $path.$actual_image_name))
                    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..!";
}
?>

ありがとうございました

4

0 に答える 0