Pet*_*erV 83 html javascript filesystems src
如果html文件是本地的(在我的C驱动器上),它可以工作,但如果html文件在服务器上并且图像文件是本地的,则不行.这是为什么?
任何可能的解决方法?
Bjo*_*orn 55
如果客户端可以请求本地文件系统文件然后使用JavaScript来确定其中的内容,那么这将是一个安全漏洞.
解决此问题的唯一方法是在浏览器中构建扩展.Firefox扩展和IE扩展可以访问本地资源.Chrome限制性更强.
And*_*rao 29
你不应该使用"file:// C:/localfile.jpg"而不是"C:/localfile.jpg"吗?
New*_*ang 25
除非您正在访问本地html页面,否则不允许浏览器访问本地文件系统.你必须在某处上传图像.如果它与html文件位于同一目录中,那么您可以使用<img src="localfile.jpg"/>
老实说,最简单的方法是将文件托管添加到服务器。
打开IIS
在默认网站下添加虚拟目录
将适当的权限添加到“网络服务”和“ IIS AppPool \ DefaultAppPool”的C:驱动器上的文件夹中
刷新默认网站
这样就完成了。现在,您可以通过导航到http://yourServerName/whateverYourFolderNameIs/yourImage.jpg浏览到该文件夹中的任何图像,并在img src中使用该URL。
希望这可以帮助某人
我们可以使用 JavaScriptFileReader()及其 `readAsDataURL(fileContent 函数)来显示本地驱动器/文件夹文件。将更改事件绑定到图像,然后调用 JavaScript 的 showpreview 函数。
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;'>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
function showpreview(e) {
var reader = new FileReader();
reader.onload = function (e) {
$("#previewImage").attr("src", e.target.result);
}
//Imagepath.files[0] is blob type
reader.readAsDataURL(e.files[0]);
}
</script>
</head>
<body >
<div>
<input type="file" name="fileupload" value="fileupload" id="fileupload" onchange='showpreview(this)'>
</div>
<div>
</div>
<div>
<img width="50%" id="previewImage">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)