您好我如何预览图像而不上传到asp.net C#中的服务器,当我看到图像时,我应该按上传上传到服务器。
答案 0 :(得分:13)
在支持HTML5的浏览器中,您可以使用FileReader对象从用户hdd读取文件作为base64编码的字符串。 您可以将此base64表示与css一起使用来显示预览。 在旧版浏览器中,您需要使用flash或类似的基于插件的代码来执行此操作。
这是一个适用于所有现代浏览器的HTML5示例:
<html>
<head>
<script>
var elmFileUpload = document.getElementById('file-upload');
function onFileUploadChange(e) {
var file = e.target.files[0];
var fr = new FileReader();
fr.onload = onFileReaderLoad;
fr.readAsDataURL(file);
}
function onFileReaderLoad(e) {
var bgStyle = "url('" +e.target.result + "')";
elmFileUpload.parentElement.style.background = bgStyle;
};
elmFileUpload.addEventListener('change',onFileUploadChange,false);
</script>
</head>
<body>
<input type="file" id="file-upload"/>
</body>
</html>
答案 1 :(得分:3)
是的,这是可能的。
HTML
<input type="file" accept="image/*" onchange="showMyImage(this)" />
<br/>
<img id="thumbnil" style="width:20%; margin-top:10px;" src="" alt="image"/>
JS
function showMyImage(fileInput) {
var files = fileInput.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
var img=document.getElementById("thumbnil");
img.file = file;
var reader = new FileReader();
reader.onload = (function(aImg) {
return function(e) {
aImg.src = e.target.result;
};
})(img);
reader.readAsDataURL(file);
}
}
您可以从此处获取Live Demo。