近期项目中需要将前台vue穿过来base64格式的图片记录保存存到阿里云oss上,通过网上找的一些方法结合自己的实际情况终于实现了,下面直接上代码:
前台vue代码:
<
template
>
<
div
class=
"insti-container"
>
<
div
v-if="
mediciner"
>
<
h2
>营业执照
</
h2
>
<
div
class=
"loadImg"
>
<
div
id=
"img-group"
>
<
div
class=
"img-item"
style=
"display:none"
>
<
img
id=
"seeimg"
:src="
imgUrl"
alt=
""
>
</
div
>
</
div
>
<
div
id=
"ossfile"
>加载上传插件失败!
<
a
class =
'btn'
>刷新
</
a
></
div
>
<
div
class=
"add-pic Single"
@click="
uploadImg"
id=
"container"
>
<
a
id=
"selectfiles"
href=
"javascript:void(0);"
class=
'btn'
></
a
>
</
div
>
</
div
>
</
div
>
<
h2
>上传资质照片(
<
span
>{
{
curNumber}}
</
span
>/9)
</
h2
>
<
div
class=
"loadImg"
>
<
div
id=
"img-group"
>
<
div
class=
"img-item"
v-for="(
item,
index)
in
inspect"
:key="
index"
@click="
delectImg(
index)"
>
<
img
:src="
item"
alt=
""
>
<
p
class=
"closeImg"
ref=
"closeImg"
></
p
>
</
div
>
</
div
>
<
div
class=
"add-pic"
@click="
addPic()"
v-show="
picFlag"
>
<
input
name=
"files"
id=
"uploaderInput"
type=
"file"
accept=
"image/*"
multiple
/>
</
div
>
</
div
>
<
button
class=
"Submission"
@click="
Submission"
>下一步
</
button
>
<
p
class=
"Prompt"
>您上传的资质照片,可能会作为您的资质实力公开展示
</
p
>
<
div
>
<
form
name=
theform
>
<
input
type=
"radio"
name=
"myradio"
value=
"local_name"
class=
"dn"
/>
<
input
type=
"radio"
name=
"myradio"
value=
"random_name"
class=
"dn"
checked=
true
/>
<
br
/>
<
input
type=
"text"
class=
"dn"
id=
'dirname'
placeholder=
"如果不填,默认是上传到根目录"
size=
50
>
</
form
>
<
br
/>
<
div
id=
"container"
class=
"dn"
>
</
div
>
<
pre
id=
"console"
class=
"dn"
></
pre
>
<
p
>
</
p
>
</
div
>
</
div
>
</
template
>
<
script
>
import {
loginService}
from
"../services/login"
import {
Toast}
from
'mint-ui'
import
$
from
'jquery'
export
default {
data(){
return{
curNumber:
0,
inspect: [],
//检查照片
picFlag:
true,
imgUrl:
"",
//社保照片,
type:
this.
$route.
query.
type,
mediciner:
true
}
},
methods: {
Submission(){
//提交
console.
log(
this.
inspect)
let
_imgSrc =
$(
"#seeimg").
attr(
"src");
this.
imgUrl =
_imgSrc;
if(
this.
type ==
"p"){
//判断是企业还是医生
if(
_imgSrc ==
""){
Toast(
"请上传营业执照")
}
else{
loginService.
supplierAddImg(
this.
imgUrl,
this.
inspect).
then(
r
=>{
if(
r.
flag ==
20000){
let
path = {
path:
'/accountReceivable',
query: {}}
this.
$router.
push(
path)
}
else{
Toast(
r.
msg)
}
})
}
}
else{
loginService.
supplierAddImg(
inspect).
then(
r
=>{
if(
r.
flag ==
20000){
let
path = {
path:
'/accountReceivable',
query: {}}
this.
$router.
push(
path)
}
else{
Toast(
r.
msg)
}
})
}
},
uploadImg(){
this.
imports();
},
RemoveValByIndex(
arr,
index) {
arr.
splice(
index,
1);
},
delectImg(
ind){
this.
RemoveValByIndex(
this.
inspect,
ind)
this.
curNumber =
this.
inspect.
length
if(
this.
inspect.
length <
9){
this.
picFlag =
true
}
},
addPic(){
var
vm =
this;
var
input =
$(
"#uploaderInput");
input.
unbind(
'change').
on(
'change',
function (
e) {
var
files =
input[
0].
files;
if (
files.
length ==
9)
vm.
picFlag =
false;
for (
var
i =
0;
i <
files.
length;
i++) {
var