1. 首页 > 快讯

js实现图片上传

。进步{

宽度:9%;

高度:10px;

border:1px 实心#ccc;

边距底部:6px;

边距-left: 85px;

边距-top: -10px;

显示:无;

}

.bgpro {

显示:块;

宽度:9px;

背景:#c0c4cf;

高度:10px;

颜色:#fff;

文本对齐:居中;

字体大小: 8px;

}

/风格

div id='预览'

img id='imghead' class='pic_show' border=0 src='__STATICS_DOMAIN__/public/boss/images/imgbg.png' width='100' height='100' /

/div

输入类型='按钮'值='选择徽标'类='btn'/

input type='file' onchange='previewImage(this)' class='file' name='pic'/

a(请选择100 X 100方形标志以达到最佳显示效果)/a

/div

div 类='进度'span 类='bgpro'/span/div

$('input[name='pic']').on('change',function() {

if(this.files 的类型=='未定义'){

返回;

}

var img=this.files[0];//获取图像信息

var type=img.type;//获取图片类型并判断用途

var url=getObjectURL(this.files[0]);//使用自定义函数获取图片的本地url

var fd=new FormData();//实例化表单并提交数据使用

fd.append('pic',img);//追加img

如果(网址)

$('.pic_show').attr('src',url).show();//显示图片

js实现图片上传

if(type.substr(0,5) !='image'){//类型过滤无效

alert('不是图片类型,无法上传!');

返回;

}

//启动ajax请求,tp在后台使用

$.ajax({

输入: '帖子',

url : dolphin.image_upload_url,

数据: fd,

processData: false, //告诉jQuery不要处理数据,这个是必须的,否则会报错

contentType: false, //告诉jQuery 不要设置contentType

数据类型: '文本',

xhr : function() {//这个是关键点,获取原始xhr对象,然后绑定upload.onprogress

var xhr=jQuery.ajaxSettings.xhr();

xhr.upload.onprogress=函数(ev) {

//这里开始计算百分比

var parcent=0;

if(ev.lengthComputable) {

百分比=100 * ev.loaded/ev.total;

百分比=parseFloat(百分比).toFixed(2);

$('.progress').show();

$('.bgpro').css('宽度',百分比+ '%').html(百分比+ '%');

}

};

返回xhr;

},

success:函数(数据){

警报(数据)

}

});

});

//自定义图片路径函数

函数getObjectURL(文件) {

var url=null;

if (window.createObjectURL!=undefined) { //基本

url=window.createObjectURL(文件);

} else if (window.URL!=undefined) { //mozilla(firefox)

url=window.URL.createObjectURL(文件);

js实现图片上传

} else if (window.webkitURL!=undefined) { //webkit 或chrome

url=window.webkitURL.createObjectURL(文件);

}

返回网址;

}

PHP

Array([名称]=cooff[电子邮件]=qq.comaa)Array([文件]=Array([名称]=ynce2.0 test.apk[类型]=application/vnd.android.package-archive[tmp_name]=/tmp/php4Jxt0c[error]=0[size]=6476627)) 图片上传插件

函数预览图像(文件){

控制台日志(4444)

var最大宽度=180;

var最大高度=180;

var div=document.getElementById('预览');

if(file.files file.files[0]) {

div.innerHTML='img id=imghead';

div.innerHTML +='span class='closeimg' onclick='closeimg()'/span';

var img=document.getElementById('imghead');

img.onload=函数() {

控制台日志(5555)

var rect=clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

img.width=矩形.width;

img.height=矩形.height;

//img.style.marginLeft=rect.left+'px';

img.style.marginTop=rect.top + 'px';

}

var reader=new FileReader();

reader.onload=函数(evt) {

img.src=evt.target.result;

}

reader.readAsDataURL(file.files[0]);

} else //兼容IE

{

var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src='';

文件.select();

var src=document.selection.createRange().text;

div.innerHTML='img id=imghead';

var img=document.getElementById('imghead');

img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src=src;

var rect=clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

js实现图片上传

状态=('rect:' + 矩形顶部+ ',' + 矩形.左+ ',' + 矩形宽度+ ',' + 矩形高度);

div.innerHTML='div id=divhead style='width:' + 矩形.width + 'px;height:' + 矩形.height + 'px;margin-top:' + 矩形.top + 'px;' + sFilter + src + '\''/div';

}

}

函数clacImgZoomParam(maxWidth, maxHeight, 宽度, 高度) {

var 参数={

顶部: 0,

左: 0,

宽度:宽度,

身高: 身高

};

if(宽度maxWidth || 高度maxHeight) {

速率宽度=宽度/最大宽度;

速率高度=高度/最大高度;

如果(速率宽度速率高度){

参数.width=maxWidth;

param.height=Math.round(高度/速率宽度);

} 别的{

param.width=Math.round(宽度/rateHeight);

param.height=maxHeight;

}

}

param.left=Math.round((maxWidth - param.width)/2);

param.top=Math.round((maxHeight - param.height)/2);

返回参数;

}

函数closeimg(){

$('#preview').find('img').attr('src','./public/boss/images/imgbg.png');

$('#preview').find('span').remove();

console.log($('#preview').find('input').val());

var file=document.getElementById('fileInput');

if (file.outerHTML) {

文件.outerHTML=文件.outerHTML;

} else { //FF(包括3.5)

文件.值='';

}

}

用户评论

箜篌引

学习一下如何用JS实现图片上传功能,自己搭建网站确实方便

    有19位网友表示赞同!

别伤我i

感觉最近很多服务都要配合前端提交图片文件,要好好研究下这个思路

    有17位网友表示赞同!

空巷

以前都是依赖后端处理图片上传逻辑,现在想尝试自己用JS实现看看效果

    有15位网友表示赞同!

淡写薰衣草的香

js实现图片上传,是不是要考虑兼容性问题?不同的浏览器可能有差异吧

    有19位网友表示赞同!

初阳

学习一下如何使用formData对象进行文件传输,这对前端开发者很重要

    有16位网友表示赞同!

青楼买醉

看了很多教程,感觉关键是选择合适的框架或工具来辅助开发

    有5位网友表示赞同!

命该如此

用js实现图片上传方便快捷,而且可以自定义一些逻辑处理

    有18位网友表示赞同!

走过海棠暮

希望能够学习到精通js上传图片的技巧

    有7位网友表示赞同!

忘故

想先了解一下js如何获取文件内容和路径

    有12位网友表示赞同!

此刻不是了i

图像上传过程需要考虑安全,例如验证文件类型和大小限制

    有12位网友表示赞同!

如你所愿

学习js实现图片上传后,可以提高前端开发效率

    有18位网友表示赞同!

*巴黎铁塔

multipart/form-data 是一个常用的格式来提交带文件的表单数据,这很重要了解

    有15位网友表示赞同!

可儿

js实现图片上传的思路理解得不是很透彻,需要多看看代码示例

    有20位网友表示赞同!

予之欢颜

这个功能需要用到ajax异步请求和 DOM 操作吧

    有12位网友表示赞同!

放血

学习到js实现图片上传后,可以更好地理解前端开发原理

    有20位网友表示赞同!

高冷低能儿

想了解一下常用的JS框架或库是如何处理图片上传的

    有14位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/5070.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666