整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

js上传图片和展示图片

天,是JavaScript回炉的第六十六天

上传图片和点击图片并在网页上展示

//提交图片使用的是jquery的ajax传递图片,后端进行图片储存

function picture(){

let number = arguments[0].length;

let data = new FormData();

data.append('number',number)

for(let i=0;i<number;i++){

data.append("file"+i, arguments[0][i]);

}

$.ajax({

type:'POST',

url:'http://127.0.0.1:8000/index_fontsize_addimg',

dataType: "json",

data: data,

processData: false,

contentType: false,

success: function () {

alert('提交成功')

}

})

}

//点击图标展示输入框

document.getElementById('input02').onclick = function(){

let arr = new Array();

document.getElementById('div01').style.display = 'block';

let text = document.querySelector("#textarea1");

let content;

let count = 0;

let fileData;

text.addEventListener("keyup", function(e) {

content = text.value;

})

document.getElementById('input01').onchange = function() {

count+=1;

fileData = this.files[0];

arr.push(fileData)

let photo = fileData.name;

if(content == undefined){

document.getElementById('textarea1').value ='['+count+'*'+photo+']';

}else{

document.getElementById('textarea1').value = content+'['+count+'*'+photo+']';

}

}

//点击确定写入数据库

document.getElementById('input03').onclick = function(){

let name = document.getElementById('input04').value;

let photo1 = document.getElementById('textarea1').value;

//图片传递给函数 picture()

picture(arr)

let url = 'http://127.0.0.1:8000/index_fontsize_add';

data={

name:name,

content:photo1

}

//ajax的函数写入功能

writeMysql(data,url);

}

}

//ajax的函数写入功能

function writeMysql(Data,Url){

let url = Url;

let data = Data;

let ajx = new XMLHttpRequest();

ajx.open('POST',url,true);

ajx.onreadystatechange = function(){

if(ajx.readyState == 4){

if(ajx.status == 200){

let content = JSON.parse(ajx.responseText)['data'][0];

//获取值传递给mysqlExhibition()函数

mysqlExhibition(content)

}

}

}

ajx.send(JSON.stringify(data));

}

//该函数主要是对数据库的内容进行提炼

function mysqlExhibition(exhibition){

let str = exhibition.content

let str01 = exhibition

let str1 = str.replace(/\[(.+?)\]/g,'')

let str03 = (str.match(/\*/g).length);

//把值传递给pic()函数

pic(str01,str1,str03)

}

//页面展示函数,主要是创建图片,这里我觉得一张博客写入5张图片应该可以了

function pic(exhibition,str1,str03){

let Url = 'http://127.0.0.1:8000/media/'

let div = document.getElementById('div03');

let p = document.createElement('p');

div.appendChild(p);

p.innerText = str1;

console.log(str03)

console.log(exhibition)

let arr = [exhibition.img0,exhibition.img1,exhibition.img2,exhibition.img3,exhibition.img4,exhibition.img5,exhibition.img6,exhibition.img7,exhibition.img8,exhibition.img9]

for(let i=0;i<str03;i++){

console.log(arr[i])

let img = document.createElement('img');

div.appendChild(img);

img.src = Url+arr[i];

img.id = 'img01';

}

}

//展示表格,博客的内容

function selectMysql(){

let AJX = new XMLHttpRequest();

let url = 'http://127.0.0.1:8000/index_fontsize';

AJX.open('GET',url,true);

AJX.onreadystatechange = function(){

if(AJX.readyState == 4){

if(AJX.status == 200){

let number = JSON.parse(AJX.responseText)['data'].length;

let content = JSON.parse(AJX.responseText)['data']

let table = document.getElementById('table01');

for(let i=0;i<number;i++){

let tr = document.createElement('tr');

let td = document.createElement('td');

let td1 = document.createElement('td');

let td2 = document.createElement('td');

table.appendChild(tr);

tr.appendChild(td);

tr.appendChild(td1);

tr.appendChild(td2);

td.innerText = content[i].name;

td2.innerText = '查询';

td2.style.background='blue';

}

}

}

}

AJX.send();

}

selectMysql();

//点击博客查询按键

document.getElementById('table01').addEventListener('click',function(e){

let data = {

name:e.path[1].children[1].innerText

}

let url = 'http://127.0.0.1:8000/index_fontsize_select';

//传递给writeMysql()函数

writeMysql(data,url)

})

TML编辑器粘贴word图片,web编辑器粘贴word图片,web富文本编辑器粘贴word,前端编辑器粘贴word内容,前端web编辑器粘贴word,支持快捷键操作(Ctrl+V),

粘贴后word图片自动上传到服务器中,然后自动将图片和文字HTML添加到编辑器中。

用户这边日常的编辑工作基本上都是在word中完成的,用户把内容编辑好后希望能够直接一键(通过快捷键)粘贴到网站后台新闻发布页面的编辑器中,这样能够节省不少时间。提高工作效率,信息发布效率。

用户发布新闻的时候是从word里面复制图片和文字,然后将word图文内容粘贴到web富文本编辑器中,希望能够将word的图片自动上传到服务器中,服务器地址能够自定义,后端的话需要支持任意开发语言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于标准HTTP协议的都要支持。如果能够不装控件最好,

实际上装不装都无所谓,只要好用。

1.下载示例:

http://www.ncmem.com/webapp/wordpaster/versions.aspx


2.复制WordPaster插件目录


3.引入插件文件

注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4


4.在工具栏中增加插件按钮


6.初始化控件

注意:

1.如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段


参考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45

2.如果接口返回JSON,请配置ImageMatch


参考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1

3.如果接口返回的图片地址没有域名,请配置ImageUrl


参考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936

4.如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。

参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3


效果

文详细介绍了如何在Axure中创建一个上传图片列表的原型模板,包括具体的操作步骤和交互设计,对于需要在产品原型中实现图片上传功能的产品经理和设计师来说,这是一个非常实用的教程。阅读本文,你将学会如何制作一个交互式的图片上传列表,希望对你有所帮助。

上传图片列表常用于许多不同类型的应用和系统中,包括社交媒体平台、电子商务网站、博客和内容管理系统、在线相册和图像存储服务、项目管理工具等,发挥着重要作用,帮助用户管理、组织和展示他们上传的图片,从而丰富内容、提高用户体验,并支持各种业务需求。

所以今天作者就教大家怎么在Axure制作一个上传图片列表的原型模板,具体效果如下所示:

一、原型效果

1、点击上传方框,打开显示本地资源的窗口,里面可以选择本地的资源。

2、如果选择的不是图片格式,弹出弹窗提示。

3、如果选择的是图片格式,将图片回显,然后显示下一个上传方框。

二、原型预览

https://axhub.im/ax9/ca3dd539f46dc856/#g=1&p=上传图片(列表效果2)

三、原型下载

  1. 加入原型分享群后,可免费分享该原型
  2. https://weidian.com/item.html?itemID=3856417707

四、制作教程

1. 材料准备

这里需要的材料很简单主要包括一个上传框的图片,一个文本框和一个文本标签。

图片我们命名为vigopic1,文本框命名为vigotext1,文本标签命名为click1。

图片默认选择上传框的图片。

文本标签,用于触发后续交互。

文本框输入类型选择输入框,我们通过js代码可以调用选择本地图片,选择图片后进行回显,之前在上传图片那章教程里面,有详细讲解,大家可以先去学习那章教程,然后再回来学习上传之后怎么触发继续上传新的图片。

整体摆放如下图所示,只显示图片,文本标签和文本框放置在图片底部,用图片遮挡着他俩。

如果想做成列表,我们需要总共上传多少个,就复制几个,例如朋友圈案例是最多上传9个,那就复制多8个,总数九个,前面只有第一个默认显示,后面的默认隐藏即可,然后摆放整齐就可以了,本演示案例是做了一个最多上传12张图片的案例,如果有需要更多的,也可以按照下面方法自行添加。

对了,因为js代码是根据元件名来上传和回显的,所以文件名要唯一,前面第一个组合,我们把图片命名为vigopic1,文本框命名为vigotext1,文本标签命名为click1;那第二个组合就要改成图片命名为vigopic2,文本框命名为vigotext2,文本标签命名为click2;那第3个组合就要改成图片命名为vigopic3,文本框命名为vigotext3,文本标签命名为click3……如此类推。2. 交互制作

在原有的代码基础上,我们可以增加一个判断,就是上传的是否为图片格式,常见的图片格式包括png、jpg、jpeg,案例中用的是这三种格式,如果需要增加其他图片格式,可以自行添加代码如:

if(fileType==”image/png”||fileType==”image/jpeg”||fileType==”image/jpg”)

如果上传不符合格式,我们用 alert代码,调出系统弹窗提示即可,例如 alert( “请上传图片(格式JPG、JPEG、PNG)!”);

如果上传的格式符合,那就回显图片,这里和之前上传图片不同的是,回显之后,我们要显示下个一个上传框,以第一个上传框上传回显后为例,我们要从代码回到axure的元件里面,这里我们需要借助文本标签click1,我们在文本标签鼠标单击时,我们用显示的交互,将第二个组合显示出来就可以了。

现在剩下的问题就是,上传回显完之后,怎么触发这个文本标签鼠标单击的事件呢?

我们可以在代码里增加一行,用jQuery 事件 – click 方法,模拟点击按钮(或执行点击按钮时的操作),我们要选择Axure里名为click1的元件,相当于选择页面中标有 data-label 属性值为 ‘click1′ 的元素,所以整行代码是(“[data-label=’click1’]”).click;选择页面中标有 data-label 属性值为 ‘click1’ 的元素,并模拟用户对这个元素的点击,点击之后就触发上面单击时的交互,显示第一个组合。

组合2的话也是同一个原理,我们把图片命名为vigopic1、文本框命名为vigotext1、文本标签命名为click1的目的也是为了方便后续修改,在第二个组合里的,我只需要代码和名字里的’1’改成’2’,然后交互事件显示组合2改成显示组合3就可以了,改起来也非常方便。

后续的345678……组合,也是同一个道理。

那以上就是本期教程的全部内容,感兴趣的同学们可以动手试试哦,感谢您的阅读,我们下期见。

本文由人人都是产品经理作者【AI产品人】,微信公众号:【Axure高保真原型】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。