利用 DXImageTransform.Microsoft.AlphaImageLoader 直接讀取本地文件路徑渲染,無需上傳。
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<title>FileUpload 圖片預覽</title>
<style>
#preview {
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
width: 80px; height: 60px; border: 1px solid #ccc;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" onchange="previewImage(this)" />
<br /><br />
<div id="preview"></div>
</form>
<script>
function previewImage(input) {
var preview = document.getElementById('preview');
// IE: 直接使用文件路徑
if (window.ActiveXObject || "ActiveXObject" in window) {
preview.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = input.value;
}
// 現代瀏覽器:FileReader API
else if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
preview.style.backgroundImage = 'url(' + e.target.result + ')';
preview.style.backgroundSize = 'cover';
};
reader.readAsDataURL(input.files[0]);
}
}
</script>
</body>
</html>
| 瀏覽器 | 方案 | 支持版本 |
|---|---|---|
| IE 6-10 | AlphaImageLoader 濾鏡 | 原生支持 |
| IE 11+ | FileReader API | 標準支持 |
| Chrome/Firefox/Edge/Safari | FileReader API | 全版本支持 |