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..!";
}
?>
ありがとうございました