如题,怎样上传图片呢
可能大家误解我的意思了,我是说不通过表单的方式,直接通过js进行文件传输
HTML提供了一个HTML DOM FileUpload 对象,可以接收二进制文件数据流。
通过<input type="file">获取文件之后,上传服务器即可。
可以参考一下这个回答:
https://segmentfault.com/q/10...
不知道为何还没结题,就JS来讲,只能是读取数据,post到后台,ajaxPost(url,参数,callback); 到对应的servlet进行判断最后数据返回前台渲染,只能这样啊 你还想怎么办?
不通过表单上传,可以给input绑定change事件,当input的值有变化时触发函数,调用js的FileReader把本地图片读成base64,可以直接作为图片的src显示,base64就是一个字符串,此时可以用ajax把这个值传给后台。后台接受到这个值有相应的解码方法,可以把base64转换成原来的图片。一般的选中图片预览功能都是把选中的图片读成base64。下面是图片读取成base64的代码。
function readFile(obj) {
var file = obj.files[0];
//判断类型是不是图片
if (!/image\/\w+/.test(file.type)) {
alert("请确保文件为图像类型!");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
var base64= this.result;
}
}
js 生成 隐藏的 <input type="file">
然后用 formdata ajax上传
https://my.oschina.net/cty213...
我以前写的博客 可以参考一下
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
无法实现,不通过表单,JS是无法访问到文件的,JS运行在浏览器中,浏览器并没有为JS直接暴露可以操作文件的接口,只能通过HTML的input表单元素。其实这很容易理解,如果网页上的JS能自由操作本地的文件的话,那不乱套了?