浏览器默认<input type="file"/>标签路径为虚拟路径,获取真实路径需要使用File类的API实现

1 篇文章 0 订阅
1 篇文章 0 订阅

居于安全考虑现代的浏览器无法获取到 这样的真实的路径,而得到的是:C://fakepath/文件名这样的结果,而如果我们要实现图片预览效果就需要绝对路径,那么可以使用以下方式实现图片的预览效果

<script type="text/javascript">
             var image = '';
             function selectImage(file){
                 if(!file.files||!file.files[0]){
                     return;
                 }
                 var reader = new FileReader();
                 reader.onload = function(evt){
                     document.getElementById('previewImg').src = evt.target.result;
                     image = evt.target.result;
                 }
                 reader.readAsDataURL(file.files[0]);
             }
</script>

完整的html实例如下:

<!DOCTYPE HTM>
<html> 
    <head>  
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <title>上传图片预览案例</title>
        <link rel="stylesheet" type="text/css" href="css/common.css"/>
        <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
        <!--<script type="text/javascript" src="js/project/pictrue.js"></script> -->
        <!-- <script type="text/javascript" src="js/project/page.js"></script> -->
        <script type="text/javascript">
             var image = '';
             function selectImage(file){
                 if(!file.files||!file.files[0]){
                     return;
                 }
                 var reader = new FileReader();
                 reader.onload = function(evt){
                     document.getElementById('previewImg').src = evt.target.result;
                     image = evt.target.result;
                 }
                 reader.readAsDataURL(file.files[0]);
             }
        </script>
    </head> 
    <body>
        <img id="previewImg" src="image/preview.jpg" width="80" height="80" />
        <form action="uploadServlet.do" method="post"
            enctype="multipart/form-data">
            请选择图片:<input id="myfile" name="myfile" type="file"
                onchange="selectImage(this)" /> 
        </form>
    </body>
</html>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值