通过javascript加载图像

通过javascript加载图像,javascript,asp-classic,Javascript,Asp Classic,有没有办法在javascript中加载图像的完整二进制文件? 我想做的是允许用户在上传图像之前预览图像。 ie用户在其本地驱动器(C:\image.jpg)上选择一个图像,查看它,然后决定上载或取消。 我试图将源设置为映像路径,但由于它位于webapplication项目文件夹之外,因此无法工作。 有什么帮助吗?您可以这样做: <img id="preview" src="" style="display:none;" /> <form> .... <input

有没有办法在javascript中加载图像的完整二进制文件?
我想做的是允许用户在上传图像之前预览图像。
ie用户在其本地驱动器(C:\image.jpg)上选择一个图像,查看它,然后决定上载或取消。
我试图将源设置为映像路径,但由于它位于webapplication项目文件夹之外,因此无法工作。

有什么帮助吗?

您可以这样做:

<img id="preview" src="" style="display:none;" />

<form>
....
<input type="file" id="file" />
....
</form>

<script type="text/javascript">
  var file = document.getElementById("file");
  var img = document.getElementById("preview");

  file.onchange = function(){
    img.src = file.value;
    img.style.display = 'block';
  };
</script>

....
....
var file=document.getElementById(“文件”);
var img=document.getElementById(“预览”);
file.onchange=函数(){
img.src=file.value;
img.style.display='block';
};

没有简单的方法,您可以做什么:

  • 使用一些ajax文件上传程序将图像预加载到临时区域,然后由用户决定
  • 使用一些第三方书面解决方案(例如一些闪存组件)
这里还有一个类似的问题:

您需要服务器协作才能访问图像二进制数据。如果不将文件信息上载到服务器,您将无法使用“上载表单”访问文件信息


但是,您可以告诉用户将图像的源二进制数据粘贴到文本区域或其他地方,然后您可以使用JavaScript加载该二进制数据并显示实际图像。

这在某些浏览器中通过HTML5文件访问API提供。下面是一个问题。

正如多次回答的那样,由于安全限制,您不能使用纯HTML/JavaScript来实现这一点。无论如何,您都需要发送图像。但是,您可以使用Java小程序来处理这个问题,因为它完全在客户机上运行,并且提供了比HTML/JS更多的控制。有几种是免费的,随时可用的。看起来不错,一些主要网站也使用它。使用Flash也应该是可能的,但我不确定哪一个提供了此功能。检查/试用一些。

thx以获取您的帖子,但我最终在服务器上创建了一个临时文件夹,使用ajax存储上传的图像。当用户保存数据时,图像被移动到另一个位置,临时文件夹被删除。

确实如此。IE有一个由来已久的bug,它包含完整的客户端路径,而不是文件字段值中的文件名。不要让您的代码依赖于bug。我很难理解否决票,以便在适用的情况下纠正/改进答案。是因为我在一个标有ASP的问题中提到了Java小程序吗?不过,不客气:)