当前位置: 首页 > news >正文

碑林网站制作郑网站建设

碑林网站制作,郑网站建设,编程平台,236企业邮箱登录入口随着Web应用的普及,文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记,为开发者提供全面的了解和实践经验。 单文件上传 在早期的html应用中,都是使用form标签中嵌套来实现文件上传的,具体代码如…

随着Web应用的普及,文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记,为开发者提供全面的了解和实践经验。

单文件上传

在早期的html应用中,都是使用form标签中嵌套来实现文件上传的,具体代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>单文件上传示例</title>
</head>
<body><form action="/upload" method="post" enctype="multipart/form-data"><label for="fileInput">选择文件:</label><input type="file" id="fileInput" name="fileInput"><button type="submit">上传文件</button></form>
</body>
</html>

上述实现方式是最原始也是最简单的代码实现,详细的元素说明如下

  • <form> 元素包含了文件上传的整个表单,action 属性指定了处理文件上传的服务器端脚本,method 属性指定了表单提交的HTTP方法为 postenctype 属性设置为 multipart/form-data 以支持文件上传。
  • <label> 元素用于显示文本标签,上述示例中label跟元素联动,提升用户体验。
  • <input type="file"> 是文件上传的核心元素,它创建了一个文件选择框。id 属性用于关联 <label> 元素,name 属性用于标识在提交表单时的字段名。
  • <button> 元素用于提交表单。

这只是一个基本的HTML结构,实际上,要使文件上传功能更加完善,还需要使用后端技术来处理文件的接收和存储。涉及后端的代码逻辑就不在这里陈述了。后续会专门编写后端接收文件上传的相关文章。

另外单文件上传还可以结合JavaScript语言来实现,以下是一个简单的例子,演示如何使用JavaScript结合HTML实现文件上传,并通过Ajax发送文件到服务器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript文件上传示例</title>
</head>
<body><input type="file" id="fileInput" /><button onclick="uploadFile()">上传文件</button><progress id="progressBar" value="0" max="100"></progress><div id="status"></div><script>function uploadFile() {var fileInput = document.getElementById('fileInput');var progressBar = document.getElementById('progressBar');var status = document.getElementById('status');var file = fileInput.files[0];if (!file) {status.innerHTML = '请选择文件';return;}var formData = new FormData();formData.append('file', file);var xhr = new XMLHttpRequest();xhr.open('POST', '/upload', true);xhr.upload.onprogress = function (e) {if (e.lengthComputable) {var percent = (e.loaded / e.total) * 100;progressBar.value = percent;status.innerHTML = percent.toFixed(2) + '% 上传中...';}};xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {status.innerHTML = '上传完成';} else if (xhr.readyState === 4 && xhr.status !== 200) {status.innerHTML = '上传失败';}};xhr.send(formData);}</script>
</body>
</html>

本人这里也提供一个基于Vue3的文件上传实现,代码如下

<template><el-dialogclass="upload-file-dialog"title="文件上传"width="600px"height="300px"><el-row class="file-info"><el-col :span="12" class="file-info-name"><span class="title">当前文件夹:</span><span class="content">{{folderObj.filename}}</span></el-col><el-col :span="12" class="file-info-update-time"><span class="title">最后更新时间:</span><span class="content">{{folderObj.updateTime}}</span></el-col></el-row><el-row><el-col><el-upload:auto-upload="false"class="upload-demo"dragaction="#"multiple:on-change="uploadContext.handleChange"v-model:file-list="formData.fileList"><el-icon class="el-icon--upload"><upload-filled /></el-icon><div class="el-upload__text">拖动文件到这里或者<em>点击上传</em></div><template #tip><div class="el-upload__tip">文件大小不超过10MB</div></template></el-upload></el-col></el-row><el-row class="btns"><el-col><el-button type="primary" @click="uploadContext.upload">开始上传</el-button></el-col></el-row></el-dialog>
</template><script setup>
import { onMounted, reactive, getCurrentInstance } from 'vue'
import axios from 'axios'
const props = defineProps(['folderObj'])
const that = getCurrentInstance()
const ctx = that.ctx    //当前实例的上下文
const formData = reactive({fileList: [],imgSrc: ''
})const uploadContext = {upload: ()=>{formData.fileList.forEach((item, index)=>{let formData = new FormData()formData.append('fileId', item.uid)formData.append('filename', item.name)formData.append('file', item.raw)formData.append('fileSize', item.size)formData.append('fileSizeDesc', item.size + '')formData.append('fileSuffix', item.name.substring(item.name.lastIndexOf(".")+1))formData.append('identifier', item.raw.type)axios.post('/pan/file/upload', formData).then(res=>{console.log(res)	//显示上传文件结果})})},/*** 文件上传控件变化处理,这里可以增加进度条的显示处理逻辑,本人这里就处理这块代码逻辑了*/handleChange: (uploadFile, uploadFileList)=>{console.log(formData.fileList)}
}</script><style lang="scss">
.upload-file-dialog {.el-dialog__body{padding: 10px 15px;}.file-info{padding: 0 0 5px 0;.file-info-update-time{text-align: right;}}.btns{.el-col{text-align: right;}}
}
</style>
http://www.15wanjia.com/news/173398.html

相关文章:

  • 北京做网站建设代写稿子的平台
  • 如何选择做pc端网站网络舆情监测专升本对口专业
  • 网站服务器搭建及配置的具体步骤医疗网站设计图
  • 有域名如何建网站中国国际贸易单一窗口网站
  • 网站做的比较好的海南省建设标准定额网站
  • eclipes网站建设教程百度竞价排名榜
  • 官方网站建设调研报告筑巢网站建设
  • 个人网站怎么制作成图片免费试用网站源码
  • 采票网站刷流水做任务wordpress 4.7 教程
  • 重庆平台网站建设企业中小型企业网络的设计与实现
  • 株洲知名网站建设网红商城自助下单app
  • 如何查询网站是织梦做的动态表情包制作软件app
  • 景区门户网站建设大数据分析老鹰主机安装Wordpress
  • 做简历那些网站比较好9377网页游戏
  • 网站建设招标评分网站百度地图
  • 中国建设机械教育网官方网站做网站的价格是多少
  • 百度收录新网站做网站的毕业设计
  • 手机创建网站生成网站地图
  • 网站建设和营销wordpress 暂停访问
  • 网站极速备案家居网站建设营销推广
  • 外贸企业网站功能要求wordpress批量修改
  • 网站首页样式胶州网站搭建公司
  • 网站建设合同义务营销网站建设都是专业技术人员
  • 免费的黄冈网站有哪些平台可以用微信支付网店设计教程
  • 厦门营销网站制作企业电子商城网站建设
  • 百度站内搜索提升关键词排名网站建设推广图片
  • 企业 php网站建设seo是什么意思啊电商
  • 如何进行网站分析做白酒网站
  • 网站建设在那里接单百度贴吧网页版
  • 网站黑链 工具网络运维是干嘛的