我有两个问题:我的生锈语言和我的英语语言;)
我用“use std::net::TcpListener;use std::net::TcpStream;”修改了一个迷你服务器从铁锈书的例子(https://doc.rust-lang.org/book/ch20-03-graceful-shutdown-and-cleanup.html)这段代码在Firefox浏览器常见的“表单”中运行得非常完美,它发送了一个带有明显“enctype='multipart/form data'”的“input type='file'”:
let mut datax = Vec::new();
let mut el_buffer = [0; 1024];
let mut limita = 0;
loop {
let n = stream.read(&mut el_buffer).unwrap();
if n<1024 {
datax.extend_from_slice(&el_buffer[..n]);
break;
} else {
datax.extend_from_slice(&el_buffer[..n]);
}
if limita >10000 {
break;
}
limita += 1;
}
我试着用:从头到尾读();读一字不差;新的(
结果是一样的:从Firefox读取所有文件,效果很好,但从Edge,Chrome,IE,删除了收到的帖子,浏览器失去了服务器连接。
提前感谢您的宝贵帮助。
经过多次尝试和错误,谷歌,尝试和错误,谷歌。。。我找到了一个很好的解释,即“read()”函数不足以处理“stream”中的字节,所以我找到了名为“buf_redux”的很棒的工具,它取代了标准工具“std::io::BufReader”。我是这样用的:
在“Cargo.toml”中:
[dependencies]
buf_redux = "0.8.4"
在“main.rs”中
use buf_redux::BufReader;
// ....
let mut datax = Vec::new();
let mut el_buffer = [0; 4096];
// A 10 MBytes aprox.:
let mut lector = BufReader::with_capacity(10240000, &mut stream);
loop {
let n = lector.read(&mut el_buffer).unwrap();
println!("Bytes : {:?}", n);
if n<4096 {
datax.extend_from_slice(&el_buffer[..n]);
break;
} else {
datax.extend_from_slice(&el_buffer[..n]);
}
}
我希望它能帮助别人
if n<1024 {
datax.extend_from_slice(&el_buffer[..n]);
break;
} else {
Read::Read()
返回小于完整大小的数字并不意味着已经到达输入的末尾。这可能意味着数据还不可用(例如,浏览器还没有发送数据),也可能是内核一时兴起的结果。
当read()
返回零时,应该结束阅读循环。这是唯一指定为“文件结束”的返回值。
本文向大家介绍JAVA读取文件流,设置浏览器下载或直接预览操作,包括了JAVA读取文件流,设置浏览器下载或直接预览操作的使用技巧和注意事项,需要的朋友参考一下 最近项目需要在浏览器中通过URL预览图片。但发现浏览器始终默认下载,而不是预览。研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉,浏览器会默认预览。 respons
问题内容: 我在使用SWT浏览器组件时遇到了一些麻烦。我正在运行带有Sun的Java SE 1.6的Ubuntu 11.04 AMD64和Eclipse 3.7 我的问题是我的浏览器无法初始化。当我使用SWT.NONE标志实现时,出现错误 然后当我尝试使用SWT.MOZILLA标志时,我得到 我怀疑这部分是因为我正在使用XULRunner2,但是我更喜欢使用WebKit,在Eclipse 3.7中
问题内容: 这是我的代码 这段代码在IE8中工作正常,但是在Firefox和Chrome浏览器中却失败了。当我检查XHR对象时,它表示状态码为0。我检查了所有其他问题,没有一个问题可以帮助我识别问题。 让我知道,如果我在这段代码中做错了什么。如果$ .ajax有一些兼容性问题,请提出与其等效的建议。 更新: 我们在http://www.xml.com/pub/a/2005/12/21/json-d
我有一个静态网站托管在AWS CloudFront上。在一条路由上,我需要接受POST方法,因为它是OAuth服务器的重定向,所以我决定开发一个lambda@edge。 我的想法是在'Viewer Request'上注册lambda并截取POST方法,读取正文并复制标头上的值,以使它们在我的静态网站上可读(我知道我可以用javascript访问Referrer标头)。 我设置了Lambda,我可以
对不起,如果这是一个愚蠢的问题,但我导入了一个字体存储在我的电脑到一个CSS文件,虽然它在Chrome工作,但它不在Microsoft Edge或Internet Explorer。我没有任何其他浏览器,所以我不能检查那些,我想知道是否有人会知道为什么。 当我进入sources时,这是显示的(还不让我嵌入图像,我很新):sources Linotte文件夹所在的文件夹与CSS工作表所在的文件夹在同