舊版 IE(IE6-IE9)在 `` 的 `value` 屬性中包含完整本地路徑(如 `C:\Users\Name\Pics\photo.jpg`),可直接賦給 `` 預覽。現代瀏覽器(含 IE10+)出於安全考慮僅返回文件名(`C:\fakepath\photo.jpg`),此方案已不可用於生產環境。
<head runat="server">
<script type="text/javascript">
function Imagesrc() {
document.getElementById("image").src = document.all.FileUpload1.value;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<img id="image" style="height:50px;width:50px" />
<asp:FileUpload ID="FileUpload1" runat="server" onchange="Imagesrc()" />
<br />
<asp:Button ID="btnPost" runat="server" Text="上傳" OnClick="btnPost_Click" />
</div>
</form>
</body>
// 後台保存
protected void btnPost_Click(object sender, EventArgs e)
{
string saveDir = Server.MapPath("Image");
if (FileUpload1.HasFile)
FileUpload1.SaveAs(Path.Combine(saveDir, FileUpload1.FileName));
}
請參考 文章 53726 的 HTML5 File API 方案,兼容所有現代瀏覽器,安全且標準。