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

网站内容框架唐山市住房和诚乡建设局网站

网站内容框架,唐山市住房和诚乡建设局网站,能源网站建设公司,开一个做网站的工作室随着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.yayakq.cn/news/511266/

相关文章:

  • 销售产品单页面网站自助建站系统有什么好处
  • 什么是网站前台静态化网站怎么做限时抢购
  • 海外网站建设推广优秀创意网站
  • 电子商务网站开发教程书内代码网站后期运营方案步骤
  • wordpress建站平台带后台的网站模板下载
  • 去除 做网站就用建站之星工程技术
  • 网站维护一般多长时间网页设计思路说明200字
  • 特色企业网站wordpress 去除图片
  • 公司网站发展规划书wordpress 调用小工具栏
  • 怎样注册自己的货运网站线上购物网站开发
  • 如何将网站排名做高详情页模板下载
  • 如何在电脑上建设网站网页风格设计
  • 宜春做网站的婚庆公司收费价格表
  • asia域名的网站编程课程
  • 哪个网站建设平台支持花呗分期长沙专业网站建设.
  • 平台网站做数据维护需要多久河南郑州静默管理
  • 怎么建立一个网站卖东西wordpress 没有中文
  • 可以悬赏做任务的叫什么网站舆情网站推荐
  • 东营网站的优化网站的建设建议
  • 综合网站设计平面设计接单的网站
  • 什么系统做购物网站好唐山网站建设唐山
  • 网站后台使用什么做的套网站模板软件
  • wordpress获取文章链接地址永康新站优化
  • 惠州免费建站模板做网站 视频加载太慢
  • 比58同城做的好的网站wordpress安装后输入什么域名
  • 开发网站app公司开发一个网站做爬虫
  • 开一家软件开发公司需要什么邢台seo
  • 国外做电商网站分销工具
  • 厦门本地网站河北建筑培训网登录
  • 百度快照和做网站有关系吗网址你懂我意思正能量不用下载