如何将 img 标签的里的文件上传?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将 img 标签的里的文件上传?相关的知识,希望对你有一定的参考价值。


有一个下面这样的标签:

<img style="width:40%" id="bimg" src="../img/barcode.png"/>

 如何将文件图片上传那?

 我们先看下传统上传文件:

//上传文件
function upload_FileInfo()
let formData = new FormData();
formData.append("file", document.getElementById(file_1).files[0]);
let url=sensorServer.getUploadFileUrl();
$.ajax(
url:url,
type:"post",
data:formData,
processData:false,
contentType:false,
success:function(data)
console.log(JSON.stringify(data));
if(data.msg=="操作成功"&&data.data!=null)
let uploadSuccessPath=data.data;
let postSData="appkey":"cad_background","appval":data.data;
let resultCount=sensorServer.updateSettingsInfo(postSData);
if(resultCount==1)
layer.msg("上传成功!");
else
layer.msg("保存失败!");

else
alert(JSON.stringify(data));
layer.msg("上传失败!");

,
error:function(e)
alert("错误!!");


);

传统文件上传只需要做个获取file的 文件即可。那么img标签怎么做那?

继续看下去: 

 只需要将文件做个转换即可。

let imagesName=new Date().getUTCMinutes()+".png";
let fileData=document.getElementById(image1);
let fileOfBlob=dataURLtoFile(fileData.src,imagesName);

formData.append("file",fileOfBlob);
function dataURLtoFile(dataurl, filename) 
//获取代码请加微信
//这种方式电脑可以。手机不可以。

这样就可以上传文件了;

但是经过测试后发现,电脑可以手机不可以怎么办?只要更改下获取base64就可以了。

//上传文件
function upload_FileInfo()
let formData = new FormData();

let imagesName=new Date().getUTCMinutes()+".png";
let fileData=document.getElementById(bimg);
let base64=""; //getBase64Image(fileData);

//回调调用 -huochengyan
toDataURL(fileData.src, function(dataUrl)
console.log(RESULT:, dataUrl);
base64=dataUrl;
let fileOfBlob=dataURLtoFile(base64,imagesName);
formData.append("file",fileOfBlob);
//formData.append("file", document.getElementById(file_1).files[0]);
let url=sensorServer.getUploadFileUrl1();
$.ajax(
url:url,
type:"post",
data:formData,
processData:false,
contentType:false,
success:function(data)
console.log(JSON.stringify(data));
if(data.msg=="操作成功"&&data.data!=null)
let uploadSuccessPath=data.data;
let postSData="appkey":"cad_background","appval":data.data;
let resultCount=sensorServer.updateSettingsInfo(postSData);
if(resultCount==1)
alert("上传成功!");
else
layer.msg("保存失败!");

else
alert(JSON.stringify(data));
alert("上传失败!");

,
error:function(e)
alert("错误!!");


);

)
//

function toDataURL(url, callback)
公众号回复即可获取代码

//调用
// toDataURL(https://www.111.com/1.jpg, function(dataUrl)
// console.log(RESULT:, dataUrl)
// )

 好了手机端也可以了。

以上是关于如何将 img 标签的里的文件上传?的主要内容,如果未能解决你的问题,请参考以下文章

如何php给img标签里的src加链接

js如何将绝对url传入到img标签的src中

azure storage上传图片文件并获取其url以显示img标签

js如何将绝对url传入到img标签的src中

js 怎么截取img路径里的图片名

input标签file文件上传图片,获取base64