js上传图片二进制
‘壹’ js post 图片二进制内容
貌似JS没办法存储二进制数据
你这行var Contents=http.responseBody;就有问题
你完全可以只传送图片的URL 然后PHP程序获取到URL 就可以获取实际图片去解析了
(没注意你使用了ACTIVEX控件。。)
‘贰’ js 怎么实现image的二进制流
别用readAsBinaryString啊,既然都拿到File对象了,直接构造FormData就能POST了。如果你需要在客户端先把二进制流处理一遍(我赌五毛你99%不需要),用ArrayBuffer来处理二进制,完了再倒腾成Blob,再倒腾成FormData。不过具体情况还是得看那个API要啥,但我自己用FormData做的文件上传还是很轻松实现的,XHR2还能实现进度条简直好顶赞口牙。
‘叁’ 如何用javascript实现图片与二进制的转换
js是做不了文件和二进制的互相转换的,而且按照你的要求是存取数据库,js做不到的。
用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库
------------------------------------------------------
js不能把图片文件以二进制表示
‘肆’ 如何用javascript或jquery实现图片与二进制的转换
js是做不了文件和二进制的互相转换的,而且按照你的要求是存取数据库,js做不到的。
用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库。
‘伍’ js input file文件上传图片并展示
1 页面HTML内容
2 获取input[file]元素
3 对获取的file元素操作,也就是操作fileReader属性
1:Blob
2: File
3: FileList
4: FileReader
FileList :
这里,默认状态下选择文件 每次files属性上FileList对象里只有一个file文件。
file对象中包含了name 文件名; size ; type 文件类型; lastModified 最后修改时间;
FileReader:异步读取本地文件内容;包括File 和Blob ;
创建FileReader对象;读取file文件
关于fileReader的几个属性:
FileReader.error 只读一个 DOMException 代表在读取文件中出现的错误。 FileReader.readyState 只读一个数字表明的状态FileReader。这是以下之一:
FileReader.result 只读文件的内容。该属性仅在读取操作完成后才有效,并且数据的格式取决于使用哪种方法来启动读取操作。
fileReader的几个事件处理程序:
1 . FileReader.onbort:在读取操作中止时触发。
2 . FileReader.onerror:在读取操作遇到错误时触发。
3 . FileReader.onload:在读取操作成功完成时触发。
4 . FileReader.onloadstart:在开始阅读时触发。
5 . FileReader.onloadend:无论是否成功 只要读取操作完成都会触发。
6 . FileReader.onprogress:阅读Blob内容时触发。
FileReader的方法:
1 . FileReader.abort();中止读取操作
2 . FileReader.readAsArrayBuffer();完成时result属性包含ArrayBuffer表示文件数据
3 . FileReader.readAsBinaryString();完成时result属性将包含来自文件的原始二进制数据作为字符串。
4 . FileReader.readAsDataURL();完成时result属性包含data:表示文本数据的URL;
5 . FileReader.readAsText();完成时result属性包含文本的内容作为文本字符串。
‘陆’ js 怎么实现image的二进制流
把图片转为二进制流是后台代码实现的,JavaScript实现不了。后台把图片二进制流可以直接赋值给页面的image标签的src属性,img就可以把图片显示在html上。
‘柒’ javascript 处理回传的二进制图像并显示在html上
1. 发起请求页面 //ImageClient.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>ImageRequest</TITLE>
</HEAD>
<BODY>
<img src="http://127.0.0.1:8080/ImageServer.jsp"/>
</BODY>
</HTML>
2. 接受请求并返回结果页 //ImageServer.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.*"%>
<%
System.out.print("enter...");
String filePath = "C:/Program Files/Tomcat/Tomcat-7.0.4/webapps/ROOT/ericsson.gif";
File file = new File(filePath);
InputStream fis;
try {
fis = new FileInputStream(file);
byte[] buf=new byte[(int)fis.available()];
fis.read(buf);
response.setContentType("application/binary;charset=ISO8859_1");
OutputStream outs = response.getOutputStream();
outs.write(buf);
outs.flush();
out.clear();
out = pageContext.pushBody();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
%>
3. 测试结果

‘捌’ js如何将图片转换为二进制流
方法如下。
‘玖’ js 进行参数传递 但是参数中包含文字和图片 怎么把图片转成base64或者二进制呢
有一个问题需要弄清楚,才能更准确地回答你的这个问题:
你的图片最后是用来做什么的呢?
这个图片是用来上传?还是用来在浏览器上显示?
如果是用来上传,要知道base64的图片太大之后,格式很容易出错,不建议这么做,而这么做的人怕是也不好找。
如果是在浏览器上显示,你只要传这个图片的URL就可以了,URL本身就是一个字符串,然后使用JS将图片显示到页面上去,这个方法有许多种。
另外,如果你是想要将一个图片转成base64,需要这个工具的话,这里有一个,不过只不过是工具,不能传入到JS里自动转换的。
‘拾’ js怎么实现图像的二进制流
看了 SDK 源码,发送二进制图片的核心代码如下:
if hasBlob
form = new FormData
form.append k, data[k] for k of data
xhr.send form
就是往 FormData 里面塞 Blob 对象,然后使用 XHR 发送出去。
File 对象继承自 Blob 对象,所以直接把 File 塞进去就可以:
var file = input.files[0]
api.request('detection/detect', {
img: file
}, function(err, result) {
})
其实就是使用 xhr 构造了一个异步上传的表单而已。
