欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

layui.upload -图片/文件上传

程序员文章站 2022-04-07 21:00:31
...
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>文件上传</title>
		<style>
			* {
                margin: 0;
                padding: 0;
            }

            html {
                background-color: #000;
                color: #fff;
                border: none;
				height: 100%;
				width: 100%;
				overflow: hidden;
            }
				
			body{
				height: 100%;
				width: 100%;
				/* 设置旋转元素的基点位置: */
				transform-origin: left top 0; 
				background-image: url(http://192.168.31.113:8008/frame/assets/img/main-bg.jpg);
				/* 将动画与 div 元素绑定: */
				nimation: flymove 270s linear 1s infinite;
				-webkit-animation: flymove 270s linear 1s infinite;
			}
			
			/* 创建动画 */
			@-webkit-keyframes flymove {
			  0% {
				background-position: 0; }
			  100% {
				background-position: 200%; } 
			}
			
            .layui-form-box,
            .layui-input-block>.layui-textarea,
            .layui-form-box>.layui-upload-drag {
                background-color: #000;
                filter: alpha(opacity=60);
                background-color: rgba(0, 0, 0, .6);
                color: #fff;
                border: none;
            }

            .layui-form-box {
                margin-top: 21px;
            }

            .layui-input-block>.layui-textarea,
            .layui-form-box>.layui-upload-drag {
                box-shadow: inset 0px -4px 9px 0px rgba(82, 255, 255, 0.45);
                border: 1px solid rgba(82, 255, 255, 0.45);
            }

            .layui-input-block>.layui-textarea {
                width: 90%;
            }
        </style>
	</head>
	<link rel="stylesheet" href="http://192.168.31.113:8008/frame/assets/libs/ajax/libs/layui2/css/layui.css">
	<script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/layui.all.js"></script>

	<body>
		<input type="hidden" id="ipuFile" name="file" value="">
		<div class="layui-form-item layui-form-text layui-form-box ">
			<label class="layui-form-label">内容 : </label>
			<div class="layui-input-block">
				<textarea placeholder="请输入内容" id="processContent" class="layui-textarea"></textarea>
			</div>
		</div>
		<div class="layui-form-item layui-form-text layui-form-box ">
			<label class="layui-form-label">文件上传 : </label>
			<div class="layui-upload-drag" id="uploadFile">
				<div>
					<i class="layui-icon">&#xe67c;</i>
					<p>点击上传,或将文件拖拽到此处</p>
				</div>

				<div class="layui-hide" id="uploadDemoView">
					<hr>
					<img src="/frame/assets/img/fileIcon.png" alt="上传成功后渲染" style="max-width: 196px">
				</div>
			</div>
		</div>
		<div class="layui-form-item layui-form-text layui-form-box ">
			<button type="button" style=" margin-left: 110px; display: none;" id="anewBtn" onclick="deleteUpload()" class="layui-btn">删除</button>
		</div>

		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
		<script src="http://192.168.31.113:8008/frame/assets/js/api.js"></script>
	</body>
	<script>
		// 上传
		layui.use('upload', function() {
			var upload = layui.upload;
			upload.render({
				elem: '#uploadFile',
				url: HTTP_ROOT_PATH + '/system/workerorder/uploadfile2' //改成您自己的上传接口
					,
				before: function(obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
					layer.load(); //上传loading
				},
				done: function(res, index, upload) { //上传后的回调
					layer.closeAll('loading'); //关闭loading
					console.log(res, '服务器返回的数据res');
					if (res.code == 0) {
						console.log(res, 72);
						$('#anewBtn').css('display', 'block');
						//do something (比如将res返回的图片链接保存到表单的隐藏域)

						// 显示成功状态
						layer.msg('上传成功', {
							time: 500
						});

						// 上传图片成功时,让img回显图片
						layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', res.files.file);
					} else {
						layer.msg('上传失败!', {
							time: 500
						});
					}
				},
				accept: 'file' //允许上传的文件类型
					,
				choose: function(obj) {
					//将每次选择的文件追加到文件队列
					var files = obj.pushFile();
					//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
					obj.preview(function(index, file, result) {
						console.log(index, '得到文件索引'); //得到文件索引
						console.log(file, '得到文件对象'); //得到文件对象
						console.log(result, '得到文件base64编码'); //得到文件base64编码,比如图片
						//obj.resetFile(index, file, '123.jpg'); //重命名文件名,layui 2.3.0 开始新增
						//这里还可以做一些 append 文件列表 DOM 的操作
						//obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用
					});
				},
				multiple: false // 多文件上传
					,
				error: function(index, upload) {
					layer.msg('服务器上传失败!');
					//当上传失败时,你可以生成一个“重新上传”的按钮,点击该按钮时,执行  upload()  方法即可实现重新上传
					layer.closeAll('loading'); //关闭loading
				}
			});
		});

		// 删除
		function deleteUpload() {
			layer.msg('确认要删除当前文件吗?', {
				btn: ['确认', '取消'],
				time: 20000, //2秒关闭(如果不配置,默认是3秒)
				yes: function() {
					$('#ipuFile').val('');
					$('#uploadDemoView').addClass('layui-hide');
					$('#anewBtn').css('display', 'none');
					layer.msg('删除成功', {
						time: 500
					});
				},
			})
		}
	</script>

</html>

相关标签: layui javascript